2013-04-15 90 views
2

我對Entity Framework有點新鮮,並且需要一些關於語法的建議。我的目標是從一個表格中檢索一個不同的過濾設備列表,並將它們與另一個表格中的ID進行匹配。INNER JOIN和DISTINCT的SQL to Entities語法

這是完成JOIN的RAW SQL。

SELECT DISTINCT DowntimeReasons.Equipment, Equipment.ID 
FROM DowntimeReasons INNER JOIN Equipment 
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?我打開查詢語法或方法的語法。哎呀,我正在學習獨奏,我願意接受任何幫助!謝謝!

+0

我認爲以下內容可以幫助您:http://stackoverflow.com/questions/5010110/entityframework-join-using-join-method-and-lambadas –

+0

@Andy Nichols您提供的鏈接討論瞭如何執行JOIN 。我需要幫助用DISTINCT執行INNER JOIN。 –

+0

這些關係是一對多關係嗎? – lopezbertoni

回答

2

沒有看你的實體是什麼樣子,這是一個鏡頭。

你可以嘗試這樣的事情:

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(); 

如果這不起作用,那麼請把你的實體。

希望這會有所幫助。

+0

感謝這個例子。今天晚些時候我會再拍這張照片!我會用結果更新評論。 –

+0

上面的例子有所幫助,但我最終走了一條不同的路線。 –