实体框架获得(唯一)事件中ID存在的次数

时间:2014-09-04 09:13:05

标签: c# entity-framework entity-framework-4

我们有购物清单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。

任何提示都将非常感谢;)

1 个答案:

答案 0 :(得分:0)

试试这个itemsCount = sli.DistinctBy(s => s.ShoppingListId).Count()