C# + MongoDB - 不使用 MongoDB 数据类型/属性的 ObjectId

标签 c# mongodb inversion-of-control

使用 MongoDB 作为我的数据存储使我默认将 ObjectID 类型作为主键。它也可以通过使用带有 [BsonId] 属性的 Guid 来更改。这也在 MongoDB C# 驱动程序库中定义。我想让我的实体独立于数据层。 我可以只使用属性的名称 Id 来标识主键吗?我还能尝试什么?

最佳答案

您可以使用 BsonClassMap而不是使用属性来保持您的类“干净”。

// 'clean' entity with no mongo attributes
public class MyClass 
{
    public Guid Id { get; set; }
}

// mappings in data layer
BsonClassMap.RegisterClassMap<MyClass>(cm => 
{
    cm.AutoMap();
    cm.MapIdMember(c => c.Id).SetIdGenerator(CombGuidGenerator.Instance);
});

关于C# + MongoDB - 不使用 MongoDB 数据类型/属性的 ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796735/

相关文章:

c# - Unity RegisterType 与 LifetimeManager 奇怪的行为

C#:当 Reader 只有一个元素时,我应该使用 "if"而不是 "while"吗?

c# - 替换 <li> 中的控件

mongodb - 如何在创建时在 bitnami mongodb 图表中插入数据?

mongodb - 如果数组中最后一个元素的字段不等于值,则更新文档

mongodb - 蒙哥 : how to sort by external weight

dependency-injection - 大型项目中的最佳 IoC 实践

c# - 堆栈跟踪中的错误行号

c# - Automapper,我们可以看看它是如何映射对象的吗?

workflow - 如何将控制权交给调用方法