Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中将此SQL查询转换为LINQ或Lambda表达式?_C#_Sql_Linq_Tsql_Lambda - Fatal编程技术网

C# 如何在C中将此SQL查询转换为LINQ或Lambda表达式?

C# 如何在C中将此SQL查询转换为LINQ或Lambda表达式?,c#,sql,linq,tsql,lambda,C#,Sql,Linq,Tsql,Lambda,我有以下简单的表格: 表:库存 +----+------+------+ |Id | ProductId |成本| +----+------+------+ | 1 | 1 | 10 | | 2 | 2 | 55 | | 3 | 1 | 42 | | 4 | 3 | 102 | | 5 | 2 | 110 | +

我有以下简单的表格:

表:库存 +----+------+------+ |Id | ProductId |成本| +----+------+------+ | 1 | 1 | 10 | | 2 | 2 | 55 | | 3 | 1 | 42 | | 4 | 3 | 102 | | 5 | 2 | 110 | +----+------+------+ 我有以下SQL查询:

选择T.Id 从库存作为T内部联接 选择ProductId 从库存 按产品ID分组 在T.ProductId=S.ProductId上将计数*>1作为S 这可以为我提供所有存在重复ProductId的ID。使用上表,这个查询将返回id{1,2,3,5},这正是我想要的

我尝试将其转换为Lambda表达式,但它在连接时不断失败。有谁能让我开始写这个表达式,给我指出正确的方向吗

这就是我尝试过的:

var q=inventory.Join inventory.GroupBy o=>o.ProductId。其中o=>o.Count>1,g=>g.ProductId,gb=>gb.Key,g,gb=>g.Id.ToList;
你需要使用这样的东西:

 var result = Inventory
   .GroupBy(x => x.ProductId)
   .Where(x => x.Count() > 1)
   .SelectMany(x => x.ToList())
   .Select(x => x.Id);

你需要使用这样的东西:

 var result = Inventory
   .GroupBy(x => x.ProductId)
   .Where(x => x.Count() > 1)
   .SelectMany(x => x.ToList())
   .Select(x => x.Id);

你能给我们看看你试过的lambda吗?LINQ不是SQL的替代品。它是一种在ORMs之上使用的查询语言。而ORM则不适合报告这样的查询。您到底在使用哪种ORM?在T-SQL中查找重复项要容易得多,使用按ProductID分区的计数或按ProductID分区的行数..不知道为什么需要GroupBy和Join。你可以用GroupBy,你说得对。加入是个问题。我错误地尝试将T-SQL改编成LINQ。你能给我们看看你尝试过的lambda吗?LINQ不是SQL的替代品。它是一种在ORMs之上使用的查询语言。而ORM则不适合报告这样的查询。您到底在使用哪种ORM?在T-SQL中查找重复项要容易得多,使用按ProductID分区的计数或按ProductID分区的行数..不知道为什么需要GroupBy和Join。你可以用GroupBy,你说得对。加入是个问题。我错误地尝试将T-SQL改编为LINQ。您不需要在SelectMany中列出这个ToList。谢谢@Mehrdad Dowlatabadi。你救了我一个头痛。@juharr是的,谢谢你的观点。np,很高兴我能帮上忙。你不需要在SelectMany中列出这个名字。谢谢@Mehrdad Dowlatabadi。你救了我一个头痛。@juharr是的,谢谢你的观点。我很高兴能帮上忙。