如何将sql查询转换为Linq查询?

如何将sql查询转换为Linq查询?,linq,tsql,lambda,Linq,Tsql,Lambda,好的,如果说EF,你的意思是使用LINQ对实体进行查询 SELECT DISTINCT Title, ProductDescription, COUNT(1) as Duplicate FROM DB_Deals GROUP BY Title, ProductDescription HAVING COUNT(1) > 1; 假设context是DbContext,DB_Deals是映射表名 看 只是一个小注释,不需要使用DI

好的,如果说EF,你的意思是使用LINQ对实体进行查询

SELECT DISTINCT Title,
                ProductDescription,
                COUNT(1) as Duplicate
FROM DB_Deals
GROUP BY Title, ProductDescription
HAVING COUNT(1) > 1;
假设context是DbContext,DB_Deals是映射表名


只是一个小注释,不需要使用DISTINCT,因为您的GROUP BY不会返回任何重复项。您还可以将选择列表的COUNT1替换为1,或者您想要count*?在sql中,如何在mvc Ef中更改它?是的,我想要所有相同的记录。你的问题与MVC无关asp.net-MVC框架没有与数据库有关的代码。其次,在编写查询时,可以使用LINQ或LAMBDA。这些查询适用于不同类型的数据源,例如内存、XML、Linq2Sql和实体框架。因此,专门转换此TSQL也与实体框架无关。@ErikPhilips:我在这里没有看到TSQL-它看起来可能是标准SQL。此外,作者提到的实体框架这一事实可能很重要,因为LINQ to SQL和LINQ to Entities之间存在差异。选择a.Title、a.ProductDescription、a.VendorName from DB_Deals a join选择DISTINCT Title、ProductDescription、COUNT1作为重复项从DB_Deals按标题分组,ProductDescription在a.Title=b.Title和a.ProductDescription=b.ProductDescriptionOnBody上的COUNT1>1b可以帮助我如何将我的sql查询转换为MVC Ef?首先,如果你想问另一个问题,通常最好创建一个新帖子,因为没有那么多人会看到答案的新注释。至于使用LINQ生成类似的查询,这可能会有所帮助:
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(),
}