如何通过entityframework获取多个记录

时间:2012-01-12 10:03:47

标签: c# entity-framework

我有三张桌子

  1. 员工(ID数字,名称varchar)
  2. 登录(ID数字,UserName varchar,密码varchar)
  3. EmployeeLogin(ID数字,EmployeeID,LoginID)
  4. 关系是一个员工可以有多个登录。我如何获得特定员工的所有登录名。

    我可以使用下面给出的代码获取单个记录,但我将如何获得多个记录

    using (var context = new AllEntities())
    {
          var query = from c in context.Employees
                         where c.ID == 9
                         select c;
    }
    

2 个答案:

答案 0 :(得分:4)

如果您在Employee和Login之间只有一对多的关系,那么EmployeeLogin表似乎是多余的。您可以在Login表中放置一列EmployeeId。您现在拥有的设置支持员工和登录之间的多对多。

如果您根据我的建议更改模型,则可以获得EmployeeId的所有登录信息:

            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 :(得分:1)