【问题标题】:Translate Sql Query to DBContext query with filter Subquery使用过滤器子查询将 Sql 查询转换为 DBContext 查询
【发布时间】:2012-03-20 21:30:10
【问题描述】:

我有这个问题:

SELECT * FROM ScheduleGroups A
INNER JOIN ScheduleGroupResources B ON A.ScheduleGroupId=B.ScheduleGroupId
WHERE B.ScheduleGroupId IN (SELECT ScheduleGroupId 
                            FROM  ScheduleGroupResources 
                            WHERE ScheduleResourceId=2)

我想用 DbContext 查询来表示。

目前是这样的:

return actualContext.ScheduleGroups
                    .Include(a => a.ScheduleGroupResources).ToList();

这给我带来了所有的结果。我只想过滤显示在“位置”中。

非常感谢您所做的一切!

编辑:

我找到了解决办法:

return actualContext.ScheduleGroups
                    .Include(a => a.ScheduleGroupResources)
                    .Where(a => a.ScheduleGroupResources.Any(b => b.ScheduleResourceId == scheduleResourceId)).ToList();

【问题讨论】:

    标签: sql filter subquery dbcontext


    【解决方案1】:

    仅供参考,可以编写原始查询:

    SELECT * 
    FROM ScheduleGroups A
    INNER JOIN ScheduleGroupResources B ON A.ScheduleGroupId=B.ScheduleGroupId
    WHERE ScheduleResourceId=2
    

    【讨论】:

    • 也许我忘了说这种关系是一对多的。不,结果相同。您的查询仅返回 ScheduleResourceId=2 的 ScheduleGroupResources 我的查询返回 ScheduleResourceId = 2 的 ScheduleGroups 中包含的所有 ScheduleGroupResources 无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2023-03-11
    • 2014-07-12
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多