MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kunci Komposit MongoDB:InvalidOperationException:{document}.Identitas tidak didukung

Saya melihat hidrasi melalui pos konstruktor yang dilakukan melalui GetProperties .

Jadi public readonly Sku Sku; tidak muncul melalui classMap.ClassType.GetTypeInfo().GetProperties(_bindingFlags) karena hanya bisa diakses sebagai member field.

Anda dapat mengubahnya menjadi public Sku Sku { get; } sehingga terhidrasi melalui konstruktor melalui GetProperties dan ubah semua bidang hanya-baca (Sku - VendorId, Value &VendorId - Value bidang) untuk memiliki metode pengambil properti.

Juga, Anda telah menambahkan cm.MapProperty(c => c.Identity) jadi x=>x.Identity.Equals(entity.Identity) dapat diserialkan ketika digunakan sebagai ekspresi karena Identity tidak dapat dihidrasi dan didaftarkan melalui ImmutablePocoConvention karena ini bukan argumen konstruktor saat logika peta otomatis berjalan.

Perubahan kode:

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. Corong linier dari kumpulan acara dengan agregasi MongoDB, apakah mungkin?

  2. $or selector saya dalam ekspresi kecocokan pemicu database tidak berfungsi pada tingkat kedua bersarang saat mengonfigurasi pemicu database

  3. MongoDB memperbarui dokumen ketika sudah ada dengan ReactiveMongo

  4. Apakah saya masih dapat mengakses segi kontak inti situs setelah sesi dihapus?

  5. Kompleksitas Waktu $addToset vs $push ketika elemen tidak ada di Array