Joe*_*ris 9 c# mongodb mongodb-.net-driver
我有一个包含一系列嵌入文档的mongo文档.嵌入的文档具有名为"Id"的属性.
{ Name: "Outer object", Embedded: [ {Name: "Embedded A", Id: "5f1c591a71dc237199eeaeda"} ] }
Run Code Online (Sandbox Code Playgroud)
我的C#映射对象看起来像这样(显然是简化)
public class Outer
{
public string Name { get; set; }
public IEnumerable<Inner> Inners { get; set; }
}
public class Inner
{
public string Name { get; set; }
public string Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我写一个外部数据库时,C#驱动程序将Inner.Id属性的名称更改为_id.如何绕过这种自动重命名?我尝试在Id属性上使用[BsonElement("Id")]属性,但它没有帮助.
Dan*_*mov 14
MongoDB文档明确指出:
MongoDB中的文档需要有一个密钥
_id
,它可以唯一地标识它们.
在另一方面,C#属性通常都是帕斯卡情况等驱动开发不使用前缀显然决定要映射强制Id
属性_id
数据库属性.
如果要绑定恰好在MongoDB中调用的非_id
属性,可以声明另一个名称不是的C#属性,以便驱动程序不会干扰它:Id
Id
public class Inner
{
public string Name { get; set; }
[BsonElement("Id")]
public string IdStr { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3905 次 |
最近记录: |