在使用MongoDB C#驱动程序的ensureIndex之后,Id字段映射被破坏

时间:2013-12-16 12:27:52

标签: c# mongodb mongodb-.net-driver

我有以下具有自定义ID字段的实体:

public class User : IEntity {
    public string Id { get; set; }
}

if (!BsonClassMap.IsClassMapRegistered(typeof(User))) {
    BsonClassMap.RegisterClassMap<User>(map => map.AutoMap());
}

它非常好用,当我将新记录添加到集合时,会分配ID值 但是,当我尝试索引此集合中的任何其他字段时:

UserCollection.EnsureIndex(IndexKeys<User>.Ascending(p => p.Email),IndexOptions.SetUnique(true));

Id映射因为断开,插入后ID字段值为空,在集合中我看到生成的默认'_id'字段(我的'ID'的内容)。 有什么想法是什么问题? (我使用的是驱动程序1.8.3.9,mongo win32 2.4.5,NET 4.5)。感谢。

1 个答案:

答案 0 :(得分:1)

找到解决方案! UserCollection.EnsureIndex在类映射之前被调用,导致问题。