Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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# C实体框架代码优先-忽略数据库中缺少的列_C#_Entity Framework 6_Ef Code First - Fatal编程技术网

C# C实体框架代码优先-忽略数据库中缺少的列

C# C实体框架代码优先-忽略数据库中缺少的列,c#,entity-framework-6,ef-code-first,C#,Entity Framework 6,Ef Code First,我有一个连接到许多不同SQL Server数据库的项目,所有这些数据库都具有不同版本的模式。这意味着某些列仅在某些数据库中 我使用代码优先的方法使用实体框架,并且我的实体模型总是最新的,所以我想要的是,当我从数据库中选择某个内容时,我希望映射到模型时缺少的列为null 在本例中,我希望Col2为null,因为数据库中不存在Col2_Missing: var result=dbContext.Set.Selectx=>new { Col1=x.Col1, Col2=x.Col2_缺失 }托利斯特先

我有一个连接到许多不同SQL Server数据库的项目,所有这些数据库都具有不同版本的模式。这意味着某些列仅在某些数据库中

我使用代码优先的方法使用实体框架,并且我的实体模型总是最新的,所以我想要的是,当我从数据库中选择某个内容时,我希望映射到模型时缺少的列为null

在本例中,我希望Col2为null,因为数据库中不存在Col2_Missing:

var result=dbContext.Set.Selectx=>new { Col1=x.Col1, Col2=x.Col2_缺失 }托利斯特先生; 但是,代码会引发一个异常:

System.NotSupportedException:'指定的类型成员'Col2_Missing'在LINQ to实体中不受支持。仅支持初始值设定项、实体成员和实体导航属性。”

我已经尝试过使property.iso可选,但据我所知,这只会在创建列时使属性为null


当前的解决方案是在select之前检查架构版本,然后在代码中有很多丑陋的if。

我认为您的问题不适合EF或任何ORM TBH.IMHO,当前的解决方案是在选择之前检查架构版本,这是解决此问题的唯一方法。唯一可靠且最简单的方法是添加假列。可能为nullable以使所有表都相同。