Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将sql查询转换为EF查询-从中的嵌套查询_C#_.net_Sql_Linq_Entity Framework - Fatal编程技术网

C# 将sql查询转换为EF查询-从中的嵌套查询

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

只是想知道以下sql查询在linq for Entity Framework中会是什么样子

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是否正确。