Unmap属性,Unmap成员,Unmap字段的用法

时间:2013-02-17 01:48:22

标签: mongodb mongodb-.net-driver

这些陈述的用法对我来说并不清楚。  我给出以下例子

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 ???

有人可以请更深入地解释如何处理这些陈述吗?或者给我一个提示在哪里找到它? 谢谢

2 个答案:

答案 0 :(得分:0)

UnmapMember 找到与 System.Reflection.MemberInfo 对应的 BsonMemberMap ,并删除它的映射。

UnmapField UnmapProperty 仅使用字段或属性名称,将其解析为 System.Reflection.MemberInfo 并调用 UnmapMember

在某种程度上,UnmapField和UnmapProperties是UnmapMember的语法糖,它通过字段或属性字符串名称为您进行反射。

答案 1 :(得分:0)

要初始化类地图,您可以:

  1. 为您要序列化的每个成员调用MapMember
  2. 或调用AutoMap并让它自动查找成员
  3. 如果您希望大多数成员序列化,但不是所有成员,有时更容易调用AutoMap,然后取消映射想要序列化的成员(而不是调用MapMember为您的所有成员都希望序列化。

相关问题