c# - 在 Linq 查询中返回空的可枚举作为属性会导致错误
问题描述
为了提高从数据库中检索数据的性能,我想根据某些条件创建一个查询。我创建查询的代码非常复杂,所以我将尝试给出一个我认为足以解释问题的简单示例。
我有一个实体,例如汽车。对于这辆车,我想检索安装在其中的所有选项。我已经在内存中有这种类型的汽车的配置。所以当我知道没有可用的选项时,我不想在数据库中查询已安装的选项。应在一次查询数据库中检索所有数据。
我到目前为止的代码
IQueryable<Option> optionsQuery;
if (typeOfCar.ConfiguredOptions.Any())
return from context.Options select new Option{...};
else
return Enumerable.Empty<Option>().AsQueryable();
var cars = from car in context.Cars
select new Car
{
Model = car.Model,
Options = optionsQuery.Where(...)
}
当我执行此查询并且选项可用时,我从数据库中获取数据。但是,当没有可用选项时,实体框架会引发以下错误:
无法处理类型“选项”,因为它没有到值层的已知映射。
我似乎找不到任何有关此错误的确切含义或抛出原因的信息。有人可以帮帮我吗?
解决方案
推荐阅读
- firebase - Firebase Cloud Functions 部署错误 javascript
- typescript - 类型注释:如何从多个类的 Mixin 继承并保留静态方法?
- c# - UserPasswordCredential .Net 标准
- sustainsys-saml2 - SP 发起的 SLO 生成多个 SLO 请求
- c++ - C++:强制转换函数
)> 发挥作用 )> - react-native - 在 React-Native 中启用键盘后,如何仅向上移动特定元素?
- postgresql - 为什么带有尾随错字的双引号中的表名是有效语法
- bash - 从名称中动态获取 docker image id
- scala - Akka HTTP 客户端 EntityStreamSizeException
- java - 我如何摆脱所有这些愚蠢、不必要的实施方法?