这些陈述的用法对我来说并不清楚。 我给出以下例子
if (!BsonClassMap.IsClassMapRegistered(typeof(Province)))
{
BsonClassMap.RegisterClassMap<Province>(cm =>
{
cm.AutoMap();
cm.SetIdMember(
cm.GetMemberMap(c =>
c.ProvinceId).SetIdGenerator(UniqueIdGenerator.Instance));
cm.UnmapProperty(c => c.CountryId);
cm.UnmapProperty(c => c.EloqueraId);
cm.UnmapProperty(c => c.UpdateMode);
});
}
最后2个属性没有私有字段,但第一个属性(CountryId)有。 我有一种感觉,当使用UnmapProperty时,不会忽略私有字段,我最好使用UnmapMember ???
有人可以请更深入地解释如何处理这些陈述吗?或者给我一个提示在哪里找到它? 谢谢
答案 0 :(得分:0)
UnmapMember 找到与 System.Reflection.MemberInfo 对应的 BsonMemberMap ,并删除它的映射。
UnmapField 和 UnmapProperty 仅使用字段或属性名称,将其解析为 System.Reflection.MemberInfo 并调用 UnmapMember
在某种程度上,UnmapField和UnmapProperties是UnmapMember的语法糖,它通过字段或属性字符串名称为您进行反射。
答案 1 :(得分:0)
要初始化类地图,您可以:
如果您希望大多数成员序列化,但不是所有成员,有时更容易调用AutoMap,然后取消映射不想要序列化的成员(而不是调用MapMember为您做的所有成员都希望序列化。