我想进行一次数据库调用以检索以下数据,但我很难弄清楚LINQ应该是什么样子。这是我当前的实现(我知道它很糟糕!!):
var photos = from photo in entitiesContext.Photo
join pg in entitiesContext.PhotoGallery on photo.PhotoGallery.PhotoGalleryID equals pg.PhotoGalleryID
where pg.PhotoGallery == photoGalleryID
select photo;
var photoList = photos.ToList();
foreach (var photoForLoading in photoList)
{
photoForLoading.UserReference.Load();
photoForLoading.PhotoComments.Load();
foreach (var comment in photoForLoading.PhotoComment)
{
comment.UserReference.Load();
}
}
return photoList;
因此,您可以在上面看到我想要检索:
如何在LINQ中使用ADO.NET实体框架执行此操作?
干杯, 灰分。
答案 0 :(得分:6)
使用.Include方法加载相关实体。例如:
from photo in entitiesContext.Photo
.Include("UserReference")
.Include("PhotoComments")
etc...
答案 1 :(得分:1)
创建ObjectQuery时,调用包含方法,传入要自动加载的子实体的名称。如果您要加载多个子实体,则可以将调用链接到包含。
有关详细信息,请参阅此article。