2012-01-12 23 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