使用预先加载EF的右外连接

时间:2017-11-09 08:59:41

标签: c# .net entity-framework linq eager-loading

我有两张表ads和分类应用的类别。

一个类别可以有很多广告。

我想知道如何获得他们有广告的所有类别。使用.include

使用预先加载的右外连接

我喜欢使用lambda表达式的示例 提前致谢

2 个答案:

答案 0 :(得分:0)

您应该发布您尝试过的代码。查看how to post a question了解详情。

如果我理解正确,你可以这样做:

var result = dbContext.Categories.GroupJoin(dbContext.Ads, 
                cat => cat.Id, 
                ad => ad.CategoryId, 
                (cat, ads) => new { Category = cat, Ads = ads.DefaultIfEmpty() });

这将在类别和广告之间转换为LEFT JOIN

答案 1 :(得分:0)

不确定你的意思。您只想在获取类别时添加广告?如果你有类别的导航属性,这很容易。就这样做:

  yourDbContext.Set<Categories>().Include(x => x.Ads)

如果您没有类别的导航属性,我建议添加一个。