繁体   English   中英

简单的SQL计数到LINQ?

[英]Simple SQL Count to LINQ?

我花了大约两个小时的时间对此进行研究。 是LINQ btw的新手。 我如何获得这样的SQL到LINQ查询?

SELECT      r.id, name, designation, COUNT(a.id)
FROM        region r
LEFT JOIN   area a on a.region_id = r.id
GROUP BY    r.id, name, designation

我的选择当然是将其放置在一个View (我可以弄清楚),但我希望将此添加到我的知识中。 谢谢!

PS VB或C#都可以,但我更喜欢前者。

我认为是这样的:

var result =
            from r in regions
            join a in areas on r.id equals a.region_id into subvalues
            select new { id = r.id, name = r.name, designation = r.designation, count = subvalues.Count() };

假设要对数据进行分组,请尝试如下查询:

var countQry =
    from region in Regions
    let areas =
        from area in Areas
        where area.RegionId == region.Id
        select area
    select new {
        region.Id,
        region.Name,
        region.Designation,
        AreaCount = areas.Count()
    };

这样的事情也可以正常工作。

int count = 0;

(from r in region
join a in area on r.<join_val> equals a.<join_val> into leftJ
from lj in leftJ.DefaultIfEmpty()
select lj
).GroupBy( r => r.id).All(item => 
{ 
count += item.Count();
return true;
});

count应该具有您要寻找的值,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM