我们有购物清单DataTable,其中包含成分。一种成分可以多次添加到购物清单中。
我想选择的是:有多少购物清单是一种成分。即使在一个购物清单上多次出现成分,查询也应返回1。 简而言之:我需要COUNT个包含ingredientId的ShoppingListIngredients(无论是一次还是多次)
我试过这样的话:
var usersShoppingListIngredients = context.ShoppingListIngredients
.Where(sli => sli.ShoppingList.userId == userId)
.GroupBy(sli => sli.ingredientId)
.Select(sli => new
{
itemId = sli.Key,
item = sli.FirstOrDefault().CodingKeys.Ingredients.FirstOrDefault(i => i.languageId == languageId).coding,
itemsCount = sli.Count(),
percent = [Tell_Me_How] * 100 / totalPurchases
}).OrderByDescending(r => r.itemsCount);
但它返回false值 - 它会在插入多个值时返回所有出现次数。
我正在使用Entity Framework 4.0。
任何提示都将非常感谢;)
答案 0 :(得分:0)
试试这个itemsCount = sli.DistinctBy(s => s.ShoppingListId).Count()