【发布时间】:2015-03-27 15:03:42
【问题描述】:
我在以下代码中的“加入”一词上收到以下错误。
join 子句中的一个表达式的类型不正确。 调用“加入”时类型推断失败。
var organisationQuery = ClientDBContext.Organisations.Where(x => true);
var orderGrouped = from order in ClientDBContext.Orders.Where(x => true)
group order by order.OrganisationId into grouping
select new { Id = grouping.Key.Value, OrderCount = grouping.Count() };
var orders = from og in orderGrouped
join org in organisationQuery on og.Id equals org.Id
select(x => new OrganisationOrdersReportPoco()
{
OrganisationNameThenCode = org.Name,
TotalOrders = og.OrderCount
});
我没有看到 join 子句有问题?谁能给点建议?
编辑: 这是我尝试编写为 LINQ 的 SQL。
SELECT grp.OrganisationId,
grp.OrderCount,
organisations.Name
FROM (select OrganisationId,
count(*) as OrderCount
from orders where 1 = 1 group by OrganisationId) grp
LEFT OUTER JOIN organisations on grp.OrganisationId = organisations.OrganisationId
WHERE 1 = 1
我在订单和组织上都使用了复杂的 where 子句...在本示例中进行了简化。
【问题讨论】:
-
organisationQuery在哪里?