我正在使用EF实现搜索功能来搜索网站上的汽车。它工作正常,但我想优化性能。 汽车有制造和模型,以及许多图像。 使用.Include()包含make和model很容易,但是我遇到了图像问题......目前正在执行主查询,然后EF查询每个搜索结果的数据库以获取图片。我想在一个查询中包含这一切。 我可以使用.Include(),但这显然会加载所有图像,而我实际上只需要一个(任何)图像。有没有办法做到这一点?
谢谢堆!
答案 0 :(得分:0)
您必须对图像使用单独的查询。例如:
context.Configuration.LazyLoadingEnabled = false;
var cars = context.Cars.Include(c => c.Model).Where(c => c.Type == "abc").ToList();
var images = context.Images.Where(i => i.Car.Type == "abc" && ...).ToList();
现在,如果你已经正确设置了一切,EF应该修复汽车和图像之间的关系,并且每辆汽车都应该为只有第二个查询加载的图像填充图像的导航属性。