【发布时间】:2014-03-15 16:31:14
【问题描述】:
我正在努力寻找合适的语法来在 Linq-to-Entities 中复制以下 SQL:
SELECT
company.*, count(people.companyid) as cnt
FROM company
INNER JOIN people on company.id = people.companyid
GROUP BY company.id
我在数据库中定义了外键关系,随后在实体框架模型中定义了 (.edmx)
我已禁用延迟加载,因此我认为我需要包含相关表(人员),但是在我生成的剃刀视图(对于公司列表)中,对每一行进行计数似乎效率低下。即它将为每个公司填充一组人员。
@foreach (var item in Model)
{
//.....
<label>Company Members:</label>
<div>@item.people.count</div>
}
一个示例展示了如何为单个实体执行此操作,但我需要为我的每个公司提供此计数
<!-- language: lang-c#-->
using (var context = new UnicornsContext())
{
var princess = context.Princesses.Find(1);
// Count how many unicorns the princess owns
var unicornHaul = context.Entry(princess)
.Collection(p => p.Unicorns)
.Query()
.Count();
}
【问题讨论】:
标签: c# asp.net-mvc linq entity-framework linq-to-entities