对于我的查询,在EF核心中有更好的方法吗(只因为父关键字而加入父表)



我正在使用EF核心,有时我仍在为如何加载数据而挣扎。

在SQL中,我会这样构建我的查询:

SELECT i.Id, i.HeaderSliderPageId, i.Active, i.ImageURL, i.Content, i.SortOrder
FROM headersliderimage i
RIGHT JOIN headersliderpage p on p.Id = i.HeaderSliderPageId
WHERE p.WebpageId = 1

现在在ef核心我使用这个

var data =  from i in db.HeaderSliderImage
join p in db.HeaderSliderPage.Where(p => p.WebpageId == webpageId) on i.HeaderSliderPageId equals p.Id
select i;

这是可行的,但我不确定这是否是可行的。或者我是否应该使用"Include"。但我只是引用parant表,因为Id。

我的方法可以吗?或者有更好的方法来解决这个问题吗?谢谢你在这件事上的帮助!

这两个表之间的映射是一对多吗?

实际上,您不需要手动加入这些表——EF会为您做到这一点。因此,您可以编写以下内容:

db.HeaderSliderImage
.Where(image => image.HeaderSliderPage.WebpageId == webpageId)
.ToList()

相关内容

最新更新