Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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# LINQ中select语句中的子查询,而不是where子句中的子查询_C#_Linq To Sql_Subquery - Fatal编程技术网

C# LINQ中select语句中的子查询,而不是where子句中的子查询

C# LINQ中select语句中的子查询,而不是where子句中的子查询,c#,linq-to-sql,subquery,C#,Linq To Sql,Subquery,我需要做如下的事情 SELECT p.name, (SELECT COUNT(p.id) FROM products WHERE products.parent_id = p.id) AS sub_products FROM products AS p 我在where子句中看到了很多子查询的LINQ示例,但在select语句中没有类似的子查询。此查询应该是等效的: var query = Products.Select(p => new {

我需要做如下的事情

SELECT p.name, 
   (SELECT COUNT(p.id) FROM products WHERE products.parent_id = p.id) AS sub_products
FROM products AS p

我在where子句中看到了很多子查询的LINQ示例,但在select语句中没有类似的子查询。

此查询应该是等效的:

var query = Products.Select(p => new {
                         p.Name,
                         SubProducts = Products.Count(c => c.parent_id == p.id)
                     });

foreach (var item in query)
{
    Console.WriteLine("{0} : {1}", item.Name, item.SubProducts);
}

请注意,在select中使用子查询在LinqPad中对我不起作用,但在C项目中可以起作用。@eka808这很奇怪,它对我很好,我从未遇到过这样的限制。也许你可以发布一个关于它的问题。