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这很奇怪,它对我很好,我从未遇到过这样的限制。也许你可以发布一个关于它的问题。