Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架,多对多实体,从实体的导航属性读取数据_C#_Entity Framework - Fatal编程技术网

C# 实体框架,多对多实体,从实体的导航属性读取数据

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

我正在使用mysql和实体框架开发asp.net web表单(C#)。 在我的数据库中,一个用户表与权限表具有多对多关系,第三个表UserPermission用于建立这种关系。 以下是实体框架数据模型生成的类

 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的数据源来执行此操作,例如,我如何迭代用户并在复选框中显示分配的权限