我有三张桌子
关系是一个员工可以有多个登录。我将如何获得特定员工的所有登录名。
我能够使用下面给出的代码获取单个记录,但是如何获得多个记录?
using (var context = new AllEntities())
{
var query = from c in context.Employees
where c.ID == 9
select c;
}发布于 2012-01-12 10:20:48
如果员工和登录之间只有一对多的关系,那么EmployeeLogin表似乎是多余的。您只需将列EmployeeId放在Login表中即可。您现在拥有的设置支持员工和登录之间的多对多。
如果您按照我的建议更改您的模型,那么您就可以获得像这样的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;发布于 2012-01-12 16:05:03
您应该在Employee实体的导航属性中拥有所有登录。请参阅本教程:
http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-1
您可以让实体框架自动获取相关数据,也可以手动获取;有关延迟加载和急切加载的说明,请参阅以下教程:
http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-2
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application
https://stackoverflow.com/questions/8833194
复制相似问题