linq左接続を実現する2つの書き方
goodsのデータ:categoryId=1,count=4 categoryId=3,count=1 categoryId=10,count=15 db.Categoriesテーブルには、完全なカテゴリデータが含まれています.dbをクエリーする必要があります.Categories左にgoodsテーブルを接続すると、categoryId=1、count=4 categoryId=2、count=0 categoryId=3、count=1、categoryId=4、count=0…クエリ文の書き方:
照会方法の書き方
var categories = from category in db.Categories
join g in goods
on category.Id equals g.categoryId into categoryGoods
from c in categoryGoods.DefaultIfEmpty()
select new
{
id = category.Id,
name = category.Name,
count = c == null ? 0 : c.count
};
照会方法の書き方
var categories = db.Categories
.GroupJoin(goods, c => c.Id, g => g.categoryId, (c, g) => new
{
id = c.Id,
name = c.Name,
count = g.DefaultIfEmpty() == null ? 0 : g.DefaultIfEmpty().First().count
});