MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để RegisterClassMap cho tất cả các lớp trong một không gian tên cho MongoDb?

Bạn không cần ghi BsonClassMap.RegisterClassMap<MyClass>(); , bởi vì tất cả các lớp sẽ được tự động hóa theo mặc định.

Bạn nên sử dụng RegisterClassMap khi bạn cần tuần tự hóa tùy chỉnh:

 BsonClassMap.RegisterClassMap<MyClass>(cm => {
        cm.AutoMap();
        cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
    });

Ngoài ra, bạn có thể sử dụng các thuộc tính để tạo tuần tự hóa quản lý (đối với tôi thì có vẻ giống bản địa hơn):

[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert

Ngoài ra, bạn có thể tạo các quy tắc chung được sử dụng trong quá trình tự động hóa, như quy tắc sau:

var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);

Tôi chỉ đang sử dụng các thuộc tính và quy ước để quản lý quá trình tuần tự hóa.

Hy vọng sự giúp đỡ này.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tôi có cần phải đóng kết nối mongoose theo cách thủ công không?

  2. Express js, mongodb:ReferenceError:db không được xác định khi db được đề cập bên ngoài hàm đăng

  3. Ánh xạ một BsonArray vào một danh sách <> trong một POCO

  4. MongoDB PHP Chưa có MongoDB \ Driver \ Exception \ ConnectionTimeoutException:Không tìm thấy máy chủ phù hợp

  5. Có shell nào tốt hơn cho mongo.exe không