在将此问题标记为 Get _id of an inserted document in MongoDB? 的重复问题之前,请阅读整个问题。
我正在使用MongoDB driver开发一个ASP.NET Core API应用程序。
我面临的问题是,在将文档插入数据库后,Post类的Id属性未被分配为MongoDB生成的ID。
我找到了一些问题,他们使用类中的注释/属性来解决它,但我正在开发一个领域类没有任何持久性知识的模式。
我创建了一个没有注释的实体类:
我正在使用MongoDB driver开发一个ASP.NET Core API应用程序。
我面临的问题是,在将文档插入数据库后,Post类的Id属性未被分配为MongoDB生成的ID。
我找到了一些问题,他们使用类中的注释/属性来解决它,但我正在开发一个领域类没有任何持久性知识的模式。
我创建了一个没有注释的实体类:
public class Post
{
public string Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
使用 BsonClassMap
定义映射:
BsonClassMap.RegisterClassMap<Domain.Entities.Post>(x =>
{
x.AutoMap();
x.MapIdField(x => x.Id)
.SetSerializer(new StringSerializer(BsonType.ObjectId))
.SetIgnoreIfDefault(true);
});
以下是代码:
public async Task Create(Domain.Entities.Post entity, CancellationToken cancellationToken)
{
async Task Create()
{
await Post.InsertOneAsync(entity);
}
await Create();
var e = entity;
}
当我检查实体时,Id属性为null。
那么,在使用BsonClassMap
时,如何获取id?