asp.net - Entity Framework 4.1 - 选择多对多关联

标签 asp.net asp.net-mvc-3 entity-framework-4.1

我使用 Entity Framework 4.1 和 MVC 3。我的问题是关于 Entity Framework 中的联接表。 我创建了三个表

  1. 用户 - 用户 ID、用户名
  2. 角色 - 角色 ID、角色名
  3. 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/

相关文章:

c# - 如何在保存到 SQL 数据库并检索它以显示在标签内时保持换行符

c# - 如何处理 EntityDataSource 中的自连接?

c# - 如何读取包含未编码数据的查询字符串?

asp.net - 将 JSON 传递给 MVC 3 操作

ASP.NET MVC3 : Publishing is excluding my CSS (. 少)文件

asp.net - 如何将 MVC3 Hello World 应用程序部署到本地主机并配置 IIS

c# - 加载 EntityFramework 4.3.1 时出错

asp.net-mvc-3 - Entity Framework 中一个事务中的许多更新语句

javascript - 如何在 onclick 事件后删除 TextBox 上的缩进? (ASP.NET)

c# - 一对一关系首先在 Entity Framework 代码中失败