【发布时间】:2012-02-14 18:45:43
【问题描述】:
我正在尝试使用 Mongo Db 的 10gen C# 驱动程序编写以下代码。我在这里想要实现的是编写一个简单的适配器,以便无缝缓存 C# 对象。
RegisterClassMap() 无法识别类合同中的 CacheId 字段。我在 MapIdField api 上找不到足够的文档。
有人可以帮忙吗?提前致谢!!
public interface ICacheable
{
byte[] CacheId { get; }
}
public class Contract : ICacheable
{
public byte[] CacheId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class MongoCacheStore
{
private void RegisterClass<T>() where T : class, ICacheable
{
if (!BsonClassMap.IsClassMapRegistered(typeof(T)))
{
BsonClassMap.RegisterClassMap<T>();
BsonClassMap.RegisterClassMap<T>(cm =>
{
cm.AutoMap();
**cm.MapIdField("CacheId");**
});
}
}
}
【问题讨论】:
-
我也改变了 cm.MapIdField("CacheId");到 cm.MapIdField("Id");并将 Id 声明为 long 数据类型。但它仍然无法识别 Id。所以与不能识别字节数组id字段无关
标签: c# serialization mongodb mongodb-.net-driver