MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Klucz złożony MongoDB:InvalidOperationException:{document}. Tożsamość nie jest obsługiwana

Patrzyłem na nawodnienie przez post konstruktora, który jest wykonywany przez GetProperties .

Więc public readonly Sku Sku; nie wyświetla się przez classMap.ClassType.GetTypeInfo().GetProperties(_bindingFlags) ponieważ jest dostępny tylko jako pole członkowskie.

Możesz go zmienić na public Sku Sku { get; } więc jest nawadniany przez konstruktor za pomocą GetProperties i zmień wszystkie pola tylko do odczytu (Sku - VendorId, Value &VendorId - Value pola), aby mieć metodę pobierania właściwości.

Ponadto musisz dodać cm.MapProperty(c => c.Identity) więc x=>x.Identity.Equals(entity.Identity) może być serializowany, gdy jest używany jako wyrażenie, ponieważ Identity nie może być nawodniony i zarejestrowany przez ImmutablePocoConvention ponieważ nie jest to argument konstruktora, gdy działa logika automapy.

Zmiany w kodzie:

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. Jak uruchomić db.killOp() przy użyciu natywnego sterownika MongoDB Node.js?

  2. Jak skutecznie przekonwertować bson na json za pomocą mongo-go-driver?

  3. Czy jest jakiś sposób, aby zapisać typ daty jako czas lokalny w MongoDB?

  4. Jak zdobyć obiekt rurociągu w Scrapy Spider

  5. Spring Data MongoDB - $eq w ramach $project support