C# C实体框架代码优先-忽略数据库中缺少的列
我有一个连接到许多不同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可选,但据我所知,这只会在创建列时使属性为nullC# 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_缺失 }托利斯特先
当前的解决方案是在select之前检查架构版本,然后在代码中有很多丑陋的if。我认为您的问题不适合EF或任何ORM TBH.IMHO,当前的解决方案是在选择之前检查架构版本,这是解决此问题的唯一方法。唯一可靠且最简单的方法是添加假列。可能为nullable以使所有表都相同。