【问题标题】:Converting sql query to EF query- nested query in from将 sql 查询转换为 EF 查询嵌套查询
【发布时间】:2010-03-08 21:33:46
【问题描述】:

只是想知道以下 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

干杯 安东尼

【问题讨论】:

  • 您的查询的某些部分丢失了——有两个( 和一个)。也许是WHERE 子句的开始?
  • 缺少括号已修复...

标签: c# .net sql linq entity-framework


【解决方案1】:

很难说没有看到模型中的关联。 SportProgramPlan 上会有自引用关联吗?

SQL 对我来说似乎是一个错误,因为 PSPPASPP 可能是相同的记录,我不确定您是否想要这样?无论如何,排除......

这是一个镜头:

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 ...

【讨论】:

  • 我正在尝试提出您提供的查询,但“任何”方法不是 SportProgramPlans 的一部分...有什么想法吗?
  • KeyPerformanceIndicator 只有 1 个 SportProgramPlan 但 1 个 SportProgramPlan 可以有多个 KeyPerformanceIndicators...
  • 好的;已针对该基数进行了更新,但请参阅注释;我不确定您的原始 SQL 是否正确。
猜你喜欢
  • 2020-01-29
  • 1970-01-01
  • 2023-01-11
  • 1970-01-01
  • 2014-08-14
  • 2015-10-10
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多