如果查询中存在该列,我正在尝试找到一种方法来仅填充实体类的属性?
当我使用 DbSet.SqlQuery 执行查询并返回填充的列(这是一个别名)时,一切都很好。但是,当使用内置功能(例如 All()、Find()、ToArray() 等)时,它期望该列位于数据集中。
有没有一种方法(无需手动编写所有支持查询)将我的实体类中的属性标记为可选。
它当前被标记为可为空的 DateTime,但在使用内置功能时框架仍然提示它不存在。
任何建议都会很棒!
干杯
最佳答案
不,因为他们必须构建 SQL 查询。列是否可以为空并不重要,重要的是当他们构建查询时,如果该列不存在,那么数据库可能会抛出一个错误,提示该列不存在。
解决这个问题的唯一方法是不映射它,或者在映射时查询架构并有条件地映射属性(尽管我不建议这样做)。
关于sql - 仅当 Entity Framework 映射列存在时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215510/