C# 将sql查询转换为EF查询-从中的嵌套查询
只是想知道以下sql查询在linq for Entity Framework中会是什么样子C# 将sql查询转换为EF查询-从中的嵌套查询,c#,.net,sql,linq,entity-framework,C#,.net,Sql,Linq,Entity Framework,只是想知道以下sql查询在linq for Entity Framework中会是什么样子 SELECT KPI.* FROM KeyPerformanceIndicator KPI INNER JOIN ( SELECT SPP.SportProgramPlanId FROM SportProgramPlan PSPP INNER JOIN SportProgramPlan ASPP
SELECT KPI.*
FROM KeyPerformanceIndicator KPI
INNER JOIN (
SELECT SPP.SportProgramPlanId
FROM SportProgramPlan PSPP
INNER JOIN SportProgramPlan ASPP
ON (PSPP.SportProgramPlanId = @SportProgramPlanId
AND PSPP.StartDate >= ASPP.StartDate
AND PSPP.EndDate <= ASPP.EndDate)
) AS SPP
ON KPI.SportProgramPlanId = SPP.SportProgramPlanId
干杯
Anthony如果看不到模型中的关联,很难说。在SportProgramPlan上是否会有自我参考关联 SQL对我来说似乎是一个错误,因为PSPP和ASPP可能是同一条记录,我不确定您是否想要它?无论如何,排除……是微不足道的 这里有一个镜头:
var q = from kpi in Context.KeyPerformanceIndicators
where kpi.SportProgramPlan.Id = sportProgramPlanId
&& Context.SportProgramPlans.Any(aspp =>
spp.StartDate >= aspp.StartDate
&& spp.EndDate <= aspp.EndDate))
select ...
您的查询缺少某些部分-有两个和一个。可能是WHERE子句的开头?缺少括号已修复…我试图介绍您提供的查询,但“Any”方法不是SportProgramPlans的一部分。。。有什么想法吗?KeyPerformanceIndicator只有一个SportProgramPlan,但一个SportProgramPlan可以有多个KeyPerformanceIndicator…好;更新了基数,但请参见注释;我不确定您原来的SQL是否正确。