Sql 仅当实体框架映射列存在时

Sql 仅当实体框架映射列存在时,sql,entity-framework,c#-4.0,Sql,Entity Framework,C# 4.0,如果查询中存在列,我试图找到一种只填充实体类的属性的方法 当我使用DbSet.SqlQuery执行查询并返回填充的列(它是别名)时,一切正常。但当使用内置功能(如All()、Find()、ToArray()等)时,它希望该列位于数据集中 是否有一种方法(无需手动编写所有支持查询)将实体类中的属性标记为可选属性 它当前被标记为可为空的DateTime,但框架仍然抱怨在使用内置功能时它不存在 任何建议都很好 干杯不,因为他们必须构建SQL查询。一个列是否可以为null并不重要,重要的是当他们构建查询

如果查询中存在列,我试图找到一种只填充实体类的属性的方法

当我使用DbSet.SqlQuery执行查询并返回填充的列(它是别名)时,一切正常。但当使用内置功能(如All()、Find()、ToArray()等)时,它希望该列位于数据集中

是否有一种方法(无需手动编写所有支持查询)将实体类中的属性标记为可选属性

它当前被标记为可为空的DateTime,但框架仍然抱怨在使用内置功能时它不存在

任何建议都很好


干杯

不,因为他们必须构建SQL查询。一个列是否可以为null并不重要,重要的是当他们构建查询时,如果该列不存在,那么数据库可能会抛出一个错误,抱怨该列不存在


唯一的解决方法是不映射它,或者在映射时查询模式并有条件地映射属性(尽管我不建议这样做)。

否,因为他们必须构建SQL查询。一个列是否可以为null并不重要,重要的是当他们构建查询时,如果该列不存在,那么数据库可能会抛出一个错误,抱怨该列不存在


唯一的解决方法是不映射它,或者在映射时查询模式并有条件地映射属性(尽管我不建议这样做)。

Urgh,谢谢Darren。我记得有一个虚拟方法从DbSet填充实体类。如果我没有记错的话,如果行中存在该值,我可能可以重写它并设置“NotMapping”属性?再次谢谢。呃,谢谢你,达伦。我记得有一个虚拟方法从DbSet填充实体类。如果我没有记错的话,如果行中存在该值,我可能可以重写它并设置“NotMapping”属性?再次感谢。