我有三张桌子
关系是一个员工可以有多个登录。我如何获得特定员工的所有登录名。
我可以使用下面给出的代码获取单个记录,但我将如何获得多个记录
using (var context = new AllEntities())
{
var query = from c in context.Employees
where c.ID == 9
select c;
}
答案 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)
您应该在Employee实体的导航属性中拥有所有登录名。请参阅本教程:
您可以让实体框架自动获取相关数据,也可以手动执行;有关延迟与预期加载的描述,请参阅以下教程: