MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB समग्र कुंजी:अमान्यऑपरेशन अपवाद:{दस्तावेज़}। पहचान समर्थित नहीं है

मैं कंस्ट्रक्टर पोस्ट के माध्यम से हाइड्रेशन को देख रहा था जो GetProperties . के माध्यम से किया जाता है .

तो public readonly Sku Sku; classMap.ClassType.GetTypeInfo().GetProperties(_bindingFlags) के माध्यम से दिखाई नहीं देता क्योंकि इसे केवल सदस्य क्षेत्र के रूप में एक्सेस किया जा सकता है।

आप इसे public Sku Sku { get; } इसलिए इसे कंस्ट्रक्टर के माध्यम से GetProperties . के माध्यम से हाइड्रेट किया जाता है और सभी रीड ओनली फ़ील्ड बदलें (Sku - VendorId, Value &VendorId - Value फ़ील्ड) संपत्ति प्राप्त करने की विधि रखने के लिए।

साथ ही, आपको cm.MapProperty(c => c.Identity) जोड़ना होगा तो x=>x.Identity.Equals(entity.Identity) अभिव्यक्ति के रूप में उपयोग किए जाने पर क्रमबद्ध किया जा सकता है क्योंकि Identity ImmutablePocoConvention . के माध्यम से हाइड्रेट और पंजीकृत नहीं किया जा सकता है क्योंकि ऑटोमैप लॉजिक चलने पर यह कंस्ट्रक्टर आर्ग नहीं है।

कोड परिवर्तन:

public class Sku : Identity<Product>
{
    public VendorId VendorId { get; }
    public string Value { get; }
}

public class VendorId : Identity<Vendor>
{
    public string Value { get; }
}

BsonClassMap.RegisterClassMap<Product>(cm =>
{
   cm.AutoMap();
   cm.MapIdMember(c => c.Sku);
   cm.MapProperty(c => c.Identity);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. पायथन में हेक्स स्ट्रिंग को ऑब्जेक्ट आईडी में कैसे बदलें

  2. Node.js में सभी MongoDB डेटाबेस को कैसे सूचीबद्ध करें?

  3. स्प्रिंग मोंगोडीबी एग्रीगेशन पर डीबीआरएफ कैसे प्रोजेक्ट करें?

  4. सरणी तत्वों के लिए एकाधिक मानदंड निर्दिष्ट करें

  5. NoRM . के साथ MongoDB में आलसी लोडिंग