列出实体框架中外键指向的实体

Ari*_*Ari 4 c# database performance entity-framework

我有两个实体,比方说汽车和照片.每张照片都有Car的外键,所以每辆车都有一套照片.

我想列出一些汽车的子集,并且对于每辆列出的汽车,我想列出所有每张照片.

如何在1 db查询的Entity Framework中执行此操作?我从一开始就知道我需要照片.

我的代码现在看起来像:

var carList = CarEntities.Where(...).ToList();
foreach(var car in carList){
    var photoList = car.Photos.ToList();
}
Run Code Online (Sandbox Code Playgroud)

我想,EF会为每辆车单独进行数据库查询.

cka*_*kal 5

在查询汽车时,您可以在实体框架中包含照片.

var carList = CarEntities.Include(c => c.Photos).Where(...).ToList();
Run Code Online (Sandbox Code Playgroud)


dae*_*aai 5

ckal 的答案非常接近,除了最后使用 include 否则 EF 可能并不总是包含它(目前不记得确切原因),

var carList = CarEntities.Where(...).Include(c => c.Photos).ToList();
Run Code Online (Sandbox Code Playgroud)

编辑:这是原因... Entity Framework Include() 不工作