MongoDb 2.0 C#驱动程序未在插入上为ID创建值

MongoDb 2.0 C#驱动程序未在插入上为ID创建值,c#,mongodb,C#,Mongodb,这里说()驱动程序应该使用一个内置的ID生成器为属性ID、ID、_ID(约定)生成一个新的ID 我有一个模特 public string Id { get;set; } 而且自动ID生成也没有发生。插入的文档的ID为null 我的存储库代码中的代码片段: public void Save<TEntity>(TEntity item) where TEntity : class, new() { var collection = GetCollecti

这里说()驱动程序应该使用一个内置的ID生成器为属性ID、ID、_ID(约定)生成一个新的ID

我有一个模特

public string Id { get;set; }
而且自动ID生成也没有发生。插入的文档的ID为null

我的存储库代码中的代码片段:

    public void Save<TEntity>(TEntity item) where TEntity : class, new()
    {
        var collection = GetCollection<TEntity>();
        collection.InsertOne(item);
    }
public void Save(tenty项),其中tenty:class,new()
{
var collection=GetCollection();
收藏。InsertOne(项目);
}

在进一步排除故障后,我使其正常工作

必须将属性[BsonId]设置为StringObjectiveGenerator以设置为Id属性

[BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
网站上的文件肯定有误导性或不够清晰

其中一些Id生成器自动用于常用的 Id类型:GuidGenerator用于Guid对象使用GuidGenerator 对于ObjectId,StringObjectiveGenerator用于字符串 外部表示为ObjectId


我在MongoDb JIRA tracker上发现了一个问题,如果他们对此有任何见解,我将在这里发布他们的回复。

请包含一个可验证的示例代码,以确保我们都在同一页面上。为了澄清,您的MongoDB和驱动程序版本是什么?你的帖子标题说它是2.0,而参考链接指向的是2.2Mongodb3.2.6和Mongo驱动程序2.2.3My,代码很简单,非常简单,带有简单的CRUD代码,见上文