这是我的疑问:
categories = (from category in db.Cat
join map in db.Map on category.id equals map.categoryid
select new CategoryModel
{
Id = category.category_id,
Order = Map.order
}).ToList();
现在我想添加另一个,加入,列出所有实际拥有项目的类别:
categories = (from category in db.Cat
join map in db.Map on category.id equals map.categoryid
join items in db.Itm on map.id equals items.category_Id
select new CategoryModel
{
Id = category.category_id,
Order = Map.order
}).ToList();
第一个查询返回10个类别。第二个查询应该返回9,因为其中一个类别没有与之关系的项目。但是,第二个查询返回大约100个类别。我理解为什么会这样 - 这是因为每个第一次加入都有大约10个项目,它给了我10个类别* 10个项目。
但是我只想获得9个类别。我该怎么办?
答案 0 :(得分:1)
只需使用Distinct
categories = (from category in db.Cat
join map in db.Map on category.id equals map.categoryid
join items in db.Itm on map.id equals items.category_Id
select new CategoryModel
{
Id = category.category_id,
Order = map.order
}).Distinct().ToList();