Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从mongo数据库映射不同的案例_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 从mongo数据库映射不同的案例

C# 从mongo数据库映射不同的案例,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有一个mongo数据集,其中包含属性名称案例不同的对象。e、 g { "prop1": "value1", "prop2": "value2" }, { "Prop1": "value3", "proP2": "value4" }, { "PROP1": "value5", "ProP2

我有一个mongo数据集,其中包含属性名称案例不同的对象。e、 g

{
"prop1": "value1",
"prop2": "value2"
},
{
"Prop1": "value3",
"proP2": "value4"
},
{
"PROP1": "value5",
"ProP2": "value6"
}
有没有一种方法可以把它映射到我的课堂上

public class MyClass
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
}

我可以看出,您可以使用BsonDiscriminator属性指定特定的大小写,但我是否可以以某种方式处理多个大小写?

您可以使用
ISupportInitialize
BsonExtraElements
实现它,如下所示:

公共类MyClass:ISupportInitialize
{
公共字符串Prop1{get;set;}
公共字符串Prop2{get;set;}
[BsonExtraElements]
公共IDictionary Extras{get;set;}
=新字典(StringComparer.OrdinalIgnoreCase);
public void BeginInit(){}//此处无需执行任何操作
public void EndInit()
{
foreach(typeof(MyClass).GetProperties()中的var prop)
{
if(额外移除(道具名称,输出变量值))
{
道具设定值(此,值);
}
}
}
}
理想情况下,只需运行数据库迁移,即可将所有字段名称重命名为相同名称。否则,您将无法正确查询数据。i、 e.外壳与poco不匹配的属性将无法匹配