C# 实体框架,多对多实体,从实体的导航属性读取数据
我正在使用mysql和实体框架开发asp.net web表单(C#)。 在我的数据库中,一个用户表与权限表具有多对多关系,第三个表UserPermission用于建立这种关系。 以下是实体框架数据模型生成的类C# 实体框架,多对多实体,从实体的导航属性读取数据,c#,entity-framework,C#,Entity Framework,我正在使用mysql和实体框架开发asp.net web表单(C#)。 在我的数据库中,一个用户表与权限表具有多对多关系,第三个表UserPermission用于建立这种关系。 以下是实体框架数据模型生成的类 public class User{ public int Serial { get; set; } public string User_Name { get; set; public virtual ICollection<UserPermission> UserP
public class User{
public int Serial { get; set; }
public string User_Name { get; set;
public virtual ICollection<UserPermission> UserPermission { get; set; }
}
public class Permission{
public int Serial { get; set; }
public string Name { get; set;
public virtual ICollection<UserPermission> UserPermission { get; set; }
}
public partial class UserPermission
{
public int Serial { get; set; }
public int USER_Sr { get; set; }
public int Permission_Sr { get; set; }
public virtual User User { get; set; }
public virtual Permission Permission { get; set; }
}
公共类用户{
公共int序列{get;set;}
公共字符串用户名{get;set;
公共虚拟ICollection用户权限{get;set;}
}
公共类许可{
公共int序列{get;set;}
公共字符串名称{get;set;
公共虚拟ICollection用户权限{get;set;}
}
公共部分类用户权限
{
公共int序列{get;set;}
公共int用户_Sr{get;set;}
公共int权限\u Sr{get;set;}
公共虚拟用户用户{get;set;}
公共虚拟权限{get;set;}
}
现在我的问题是,基于用户id,我想要读取它关联的权限。
我想让用户拥有分配的权限,将这些权限填充到gridview中,其中每一行显示一个用户的记录,该行中有一个组合框包含该用户获得的权限
非常感谢您的帮助。获取分配给用户的权限
var userPermissions = MyContext.Users.Find(userId).Permissions();
其中MyContext是您的DbContext,用户在此上下文中定义为DbSet。您没有指定用于显示信息的内容,因此我无法在这方面为您提供帮助。您好,我正在使用DbContext,是的,用户在此上下文中定义为DbSet。我实际上希望加载所有用户,并将其所有权限放在一个对象中,这样我就可以将这个对象作为数据源传递给gridview(aspx gridview)。在gridview中,我希望这些权限显示在复选框中,例如网格中的每一行显示单个用户的信息,复选框列显示分配给该用户的权限。var userPermissions=MyContext.Users.Find(userId)。permissions();不工作,传递给find函数的参数是一个字符串,然后是MyContext.Users.find(userId),返回一个用户对象,User.Permissions()为空。
find()
方法需要实体的主键。在您的情况下,可能是串行的
?您应该能够将MyContext.Users.ToList()
传递到gridview,然后迭代用户及其各自的权限。我想您打算编写MyContext.Users.Find(userId.UserPermissions());您能否帮助我了解我是否使用实体数据源作为gridview的数据源来执行此操作,例如,我如何迭代用户并在复选框中显示分配的权限