【问题标题】:How can I convert a sql query to Linq query?如何将 sql 查询转换为 Linq 查询?
【发布时间】:2015-05-04 12:40:02
【问题描述】:
SELECT DISTINCT Title,
                ProductDescription,
                COUNT(1) as Duplicate
FROM DB_Deals
GROUP BY Title, ProductDescription
HAVING COUNT(1) > 1;

【问题讨论】:

  • 只是一个小评论,不需要 DISTINCT,因为您的 GROUP BY 不会返回任何重复项。您也可以将选择列表的 COUNT(1) 替换为 1,或者您可能想要 count(*)?
  • 它在 sql 中,我如何在 mvc Ef 中更改它?是的,我想要所有相同的记录。
  • 您的问题与MVC无关(asp.net-mvc框架没有与数据库有关的代码)。其次,当您编写查询时,您可以使用 LINQ 或 LAMBDA。这些查询适用于不同类型的数据源(内存、XML、Linq2Sql 和实体框架等等)。所以专门转换这个TSQL也和Entity Framework没有关系。
  • @ErikPhilips:我在这里看不到 TSQL —— 看起来它可能是标准 SQL。此外,作者提到实体框架这一事实可能很重要,因为 LINQ to SQL 和 LINQ to Entities 之间存在差异。

标签: linq tsql lambda


【解决方案1】:

好吧,如果用 EF,您的意思是使用 LINQ to Entities 进行查询...

from deal in context.DB_Deals
group deal by new { deal.Title, deal.ProductDescription } into dealGroup
where dealGroup.Count() > 1
select new {
    dealGroup.Key.Title,
    dealGroup.Key.ProductDescription,
    Duplicate = dealGroup.Count(),
}

假设context 是您的DbContextDB_Deals 是您的映射表名。

【讨论】:

  • select a.Title,a.ProductDescription,a.VendorName from DB_Deals 一个连接(SELECT DISTINCT Title, ProductDescription, COUNT(1) as Duplicate FROM DB_Deals GROUP BY Title, ProductDescription HAVING COUNT(1) > 1)b 关于 a.Title=b.Title 和 a.ProductDescription=b.ProductDescription
  • 有人可以帮助我如何将我的 sql 查询转换为 MVC Ef?
  • 首先,如果您要问另一个问题,创建一个新帖子通常是个好主意,因为没有多少人会看到新的 cmets 的答案。跨度>
  • 至于使用 LINQ 生成类似的查询,也许这会有所帮助:msdn.microsoft.com/en-us/library/bb397676.aspx
猜你喜欢
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多