2015-02-02 6 views
6

में अनुपलब्ध सेटरपेरेशन() विधि मैं नवीनतम C# driver for MongoDB के साथ काम कर रहा हूं। मुझे पता है कि यह बीटा है, लेकिन मुझे लगता है कि मैं कुछ बुनियादी चीजें कर रहा हूं।सी # MongoDB.Driver 2.0.0-beta1

मेरी समस्या क्या है: मैं जैसे कि यह documentation में वर्णन किया गया ObjectId बजाय string करने के लिए अपने आईडी क्षेत्र के लिए प्रतिनिधित्व स्थापित करने के लिए कोशिश कर रहा हूँ:

BsonClassMap.RegisterClassMap<Entity>(cm => 
{ 
    cm.AutoMap(); 
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId); 
}); 

लेकिन मैं ऐसा नहीं कर सकते हैं कि क्योंकि विधि SetRepresentation() मौजूद नहीं है । और मुझे कुछ भी नहीं मिल रहा है।

तो मुझे आश्चर्य है, क्या यह विधि हटा दी गई थी? क्या गुणों के अलावा प्रतिनिधित्व सेट करने का कोई अन्य तरीका है? मैं विशेषताओं का उपयोग नहीं कर सकता क्योंकि मेरे पास एंटिटी क्लास तक पहुंच नहीं है, मैं व्युत्पन्न कक्षा के साथ काम कर रहा हूं।

अग्रिम धन्यवाद!

+0

इस विधि संस्करण 1.9.2.235 – Disposer

+0

मैं जानता हूँ कि में मौजूद है, यह मेरे लिए काम करता है लेकिन 2.0.0 में क्यों नहीं है? मैं इसके एसिंक क्षमताओं के लिए 2.0.0 का उपयोग कर रहा हूँ। – Grant

+0

यह दिलचस्प है, उन्होंने [BsonRepresentation] विशेषता – Disposer

उत्तर

14

मैं ड्राइवर के डेवलपर के साथ बात की है और वह इस स्थिति स्पष्ट किया:

हम serializers खुद में उन सभी विकल्पों को साथ लेकर आए हैं, इसलिए, इस मामले में, आप सेट करना चाहेंगे धारावाहिक IdMemberMap.SetSerializer (नया स्ट्रिंगसेरियलाइज़र (BsonType.ObjectId)); // यह एक स्ट्रिंग है जिसे डेटाबेस में ऑब्जेक्टआईडी के रूप में दर्शाया जाएगा।

+0

मेरे लिए काम नहीं करता है (ड्राइवर 2.2) – Soren

+0

इसे पोस्ट करने के लिए धन्यवाद , वे वास्तव में अपने दस्तावेज अद्यतन करना चाहिए !! – Phil

3

(v2.2)

cm.MapIdMember(c => c.Id) 
    .SetSerializer(new StringSerializer(BsonType.ObjectId)) 
    .SetIdGenerator(StringObjectIdGenerator.Instance); 

यह डेटाबेस में objectId प्रतिनिधित्व है (नहीं स्ट्रिंग)

"_id" : ObjectId("56715ebddb6986202816e566"),