为了提高从数据库检索数据的性能,我想根据某些条件创建一个查询。我创建查询的代码非常复杂,因此我将尝试给出一个简单的示例,我认为这足以解释问题。
我有一个实体,例如汽车。对于这辆车,我想检索其中安装的所有选件。我已经在内存中配置了这种类型的汽车。因此,当我知道没有可用的选项时,我不想在数据库中查询已安装的选项。所有数据都应通过一次查询检索到数据库。
我到目前为止的代码
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(...)
}
当我执行此查询并且选项可用时,我从数据库中获取数据。但是,当没有选项可用时,Entity Framework会引发以下错误:
无法处理类型“选项”,因为它没有到值层的已知映射。
我似乎找不到任何有关此错误的确切含义或引发原因的信息。有人可以帮我吗?