【问题标题】:SQL to Entities syntax for INNER JOIN and DISTINCTINNER JOIN 和 DISTINCT 的 SQL 到实体语法
【发布时间】:2013-04-15 15:42:39
【问题描述】:

我对 Entity Framework 有点陌生,需要一些关于语法的建议。我的目标是从一个表中检索一个不同的过滤设备列表,并将它们与另一个表中的 ID 匹配。

这是完成 JOIN 的 RAW SQL。

SELECT DISTINCT DowntimeReasons.Equipment, Equipment.ID
FROM DowntimeReasons INNER JOIN 设备
ON DowntimeReasons.Equipment = Equipment.Equipment
WHERE DowntimeReasons.Emergency = 1

我已经能够使用以下代码将 SQL 中的不同设备列表重新创建为实体。

            var distinctEquipmentList = db.DowntimeReasons
                .Where(x => x.Emergency == true)
                .Distinct()
                .Select(x => x.Equipment)
                .ToList();

但是如何将此列表加入到我需要的其他表中的 ID?我愿意查询语法或方法语法。哎呀,当我独自学习时,我愿意接受任何帮助!谢谢!

【问题讨论】:

  • 我认为以下内容会对您有所帮助:stackoverflow.com/questions/5010110/…
  • @Andy Nichols 您提供的链接讨论了如何执行 JOIN。我需要帮助使用 DISTINCT 执行 INNER JOIN。
  • 关系是一对多的吗?

标签: sql asp.net-mvc frameworks entity


【解决方案1】:

不看你的实体是什么样子,这里是一个镜头。

你可以试试这样的:

var query = (from dr in db.DowntimeReasons
            join e in db.Equipments on dr.Equipment equals e.Equipment
            where e.Emergency
            select e.Equipment).Distinct().ToList();

如果这不起作用,请发布您的实体。

希望这会有所帮助。

【讨论】:

  • 感谢您的示例。我会在今天晚些时候试一试!我会用结果更新评论。
  • 上面的例子有所帮助,但我最终选择了不同的路线。
猜你喜欢
  • 1970-01-01
  • 2012-02-28
  • 2012-01-23
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2018-05-04
相关资源
最近更新 更多