0

的IEnumerable的名單上加入實體查詢我有兩個IEnumerables:EF4:對象

IEnumerable<ThisEmployee> thisEmployees; 
IEnumerable<ThatEmployee> thatEmployees; 

它們是由2個獨立的背景填充。 ThisEmployee和ThatEmployee不匹配類型。除了EmployeeNumber屬性之外,它們不共享任何類似內容。

我想爲該員工中具有匹配EmployeeNumber的員工中的任何員工獲取所有ThatEmployee.Notes。

我不能爲我的生活工作如何。

+0

我認爲LINQ加入可以用來查詢,因爲它支持的IEnumerable''我 – 2011-06-17 06:26:40

回答

0

自兩個不同的上下文中嘗試使用ToList獲得的所有對象。然後使用Linq to Objects可以使用Where(r => thisEmployees.Any(s => s.EmployeeNumber == r.EmployeeNumber))。不知道如果我理解正確的ü:)

+0

實現用這個語法,我更舒服,但這個想法是完全一樣的。謝謝! var selected =(來自該僱員的ta 在此僱員中加入ti,用戶名等於ti.UserName select ta).ToList(); – Richard 2011-06-19 23:06:51

+0

根據http://social.msdn.microsoft.com/Forums/en-US/5a90b903-93b6-4894-8ed5-0ae1521235bb/join-on-entity-and-ienumerable?forum=adodotnetentityframework – Kaerber 2014-05-15 07:02:46

0

如何像:

var notes = thatEmployees 
    .Join(thisEmployees, 
      ta => ta.EmployeeNumber, 
      ti => ti.EmployeeNumber, 
      (ta, ti) => ta.Notes) 
2

你的藏品來自不同的背景,從而讓員工的IDS首先在LINQ到對象:

var ids = from e1 in thatEmployees 
      join e2 in thisEmployees on e1.EmployeeNumber equals e2.EmployeeNumber 
      select e1.Id; 

現在使用ID從單一數據庫中獲取Notes查詢

var notes = from n in context.Notes 
      where ids.Contains(n.Employee.Id) 
      select n;