2012-01-12 33 views
0

多記錄我有三個表如何獲取通過的EntityFramework

  1. 員工(ID數字,名稱爲varchar)
  2. 登錄(ID數字,用戶名VARCHAR,密碼爲varchar)
  3. EmployeeLogin(ID數字, EmployeeID,LoginID)

關係是一個員工可以有多個登錄。我將如何獲取特定員工的所有登錄名稱。

我可以使用下面給出的代碼,但我怎麼會得到多條記錄

獲取單個記錄
using (var context = new AllEntities()) 
{ 
     var query = from c in context.Employees 
        where c.ID == 9 
        select c; 
} 

回答

3

的EmployeeLogin表似乎是多餘的,如果你只有員工和登錄間的一種一對多的關係。您可以在Login表中放置一個EmployeeId列。您現在的設置支持Employee和Login之間的多對多。

如果你按照我的建議改變你的模型,你可以再得到這樣的僱員的所有登錄:

  var query = from c in context.Logins 
         where c.EmployeeID == 9 
         select c; 

如果保持當前的模型,你可以得到一個員工ID這樣所有登錄:

  var query = from l in context.Logins 
         join el in context.EmployeeLogins 
         on l.LoginId equals el.LoginId 
         where el.EmployeeID == 9 
         select l; 
1