繁体   English   中英

LINQ 到 SQL 语法需要帮助

[英]Help needed with LINQ to SQL Syntax

嗨,我搞混了,试图按 LINQ 中的结果集建立一个组

下面的 TSQL 在 LINQ 中得到了我想要的,表达式是:

select s.SiteDescription,count(*) as TotalIncidents
from Site as s,Incident as i
where s.SiteId = i.SiteId
group by s.SiteDescription

但是我想在我的 Controller 代码中的 LINQ 中创建相同的东西,这就是我所拥有的,但它没有好处,我今天到处都是:

var qry = from s in _db.Sites
            join i in _db.Incidents on s.SiteId equals i.SiteId
            group s.SiteDescription
                into grp
                select new
                {
                    Site = grp.Key,
                    Count = grp.Select(x => x.Incidents).Distinct().Count()
                };

我的错误是:

错误 27
无法将 lambda 表达式转换为类型
'System.Collections.Generic.IEqualityComparer' because it is not a delegate type C:\Documents and Settings\Administrator\Desktop\IRenewables_EMAS\IRenewables_EMAS\Controllers\IncidentController.cs 40 23 Emas.Web
错误 28
方法“System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable, System.Func)”的类型 arguments 不能从用法中得出。 尝试明确指定类型 arguments。 C:\Documents and Settings\Administrator\Desktop\IRenewables_EMAS\IRenewables_EMAS\Controllers\IncidentController.cs 51 33 Emas.Web
错误 29
预期的上下文关键字'by' C:\Documents and Settings\Administrator\Desktop\IRennewables_EMAS\IRennewables_EMAS\Controllers\IncidentController.cs 41 27 Emas.Web

提前致谢,

尝试这个:

var qry =   from s in _db.Sites
            join i in _db.Incidents on s.SiteId equals i.SiteId
            group s by s.SiteDescription into grp
            select new
            {
                Site = grp.Key,
                Count =  grp.Count()
            };

暂无
暂无

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

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