【问题标题】:How to get the product count without using lambda expressions?如何在不使用 lambda 表达式的情况下获取产品数量?
【发布时间】:2011-09-01 18:48:28
【问题描述】:

我有一个表产品:

product_id
product_name
prodcut_price

我的 dbcontext 名称是 abcentity

我想知道有多少产品(如产品数量)以及product_id,product_name,product_price

我已经完成了使用 Groupby product_id 的 lambda 表达式(这是用于 Linq to Sql,但我使用的是 linq to entity)。

我不想使用 lambda 表达式。是否可以在不使用 lambda 表达式的情况下获取产品数量?

【问题讨论】:

  • 为什么不想使用 lambda 表达式?

标签: c# .net winforms entity-framework linq-to-entities


【解决方案1】:

您只是想避免使用 lambda 语法吗?您可以在 LINQ 查询表达式语法中使用group by 子句,而不是调用.GroupBy()

from p in abcentity.products
group p by p.product_id into g
select new {g.Key, g.Count()}

但我应该指出,这仍然会被编译为 lambda 表达式。你所改变的只是你用来表示它的语法。

【讨论】:

  • 我可以像 g.count,g.key 一样得到 product_price 和 product_name 吗?你能回复一下吗..
  • @user:您可以将select new {g.Key, g.Count()} 更改为select new {g.Key, g.Count(), g.FirstOrDefault().product_price, g.FirstOrDefault().product_name, }。请记住,如果您的产品 ID 是身份密钥,我提供的查询对于每个产品 ID 将只有 1 个产品。您还有其他要分组的内容吗,或者您的表中是否可以有多个 products 具有相同的 product_id
  • @user:嘘,伙计,有一点耐心。你只需要问一次。请一次输入一个问号或句号。
【解决方案2】:

如果您默认使用 Linq to SQL,则不需要。通过制作 lambda 创建的 Expression 用于确定要创建的查询。

如果您想要自定义表达式,您可以执行您定义的任何 SQL - Scott Gu 写了关于如何执行此操作的博客 here

如果这不是您想要做的,那么也许您可以解释一下为什么您不想使用 lambda 表达式?

【讨论】:

  • 我没有使用 linq to sql ,正如我在问题中提到的那样,我正在使用 linq to entity....所以是否可以仅使用 linq to entity 来获取计数....
猜你喜欢
  • 2018-10-19
  • 1970-01-01
  • 2022-11-30
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多