我使用 Entity Framework 4.1 和 MVC 3。我的问题是关于 Entity Framework 中的联接表。 我创建了三个表
- 用户 - 用户 ID、用户名
- 角色 - 角色 ID、角色名
- UserInRoles- UserId、RoleId
我将这些表拉到我的 edmx 文件中, 只出现两个表,即用户和角色,两者之间存在多对多关联。
如果我想从 UserInRoles 表中获取用户的角色,有什么方法?
我做了类似的事情
var result = (from ar in roles
from au in users
where au.UserName == username
select new {});
这是行不通的。请帮忙。
最佳答案
正如您猜到的那样, Entity Framework 确实将像这样的简单查找表组合到父表中以帮助您解决问题。您将无法在代码中访问查找表,但它会完成繁重的工作,并允许您像这样在表中导航。
var result = (from ar in roles
where ar.Users.UserName == username
select ar);
或者如果您更喜欢 lambda(个人偏好):
var result = context.roles.Where(x => x.Users.UserName == username);
关于asp.net - Entity Framework 4.1 - 选择多对多关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155078/