Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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# 在ASP.NETCore中创建多对多关系视图?_C#_Sql Server_Entity Framework_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 在ASP.NETCore中创建多对多关系视图?

C# 在ASP.NETCore中创建多对多关系视图?,c#,sql-server,entity-framework,asp.net-core,entity-framework-core,C#,Sql Server,Entity Framework,Asp.net Core,Entity Framework Core,我正在创建一个web应用程序,并使用Visual Studio 2019作为开发软件 技术规格:ASP.NET核心(v3.0)、实体框架核心、SQL Server 我有表名:表中的User和Role UserId和RoleId分别是主键 为了管理用户角色,我使用了表名UserRole(两个表的连接),因为一个用户可以有多个角色,比如Deep也是admin和staff。我已经创建了这个表。在这种情况下,我还将两者都设置为主键 对于添加,我需要创建一个类似于“从”下拉列表的视图,管理员可以选择一个比

我正在创建一个web应用程序,并使用Visual Studio 2019作为开发软件

技术规格:ASP.NET核心(v3.0)、实体框架核心、SQL Server

我有表名:表中的User和Role UserId和RoleId分别是主键

为了管理用户角色,我使用了表名UserRole(两个表的连接),因为一个用户可以有多个角色,比如Deep也是admin和staff。我已经创建了这个表。在这种情况下,我还将两者都设置为主键

对于添加,我需要创建一个类似于“从”下拉列表的视图,管理员可以选择一个比该列表更深的用户复选框列表或多选下拉列表进行角色选择

型号

UserRole.cs

公共类用户角色
{
public int UserId{get;set;}
public int RoleId{get;set;}
[外键(“用户ID”)]
公共虚拟IList用户{get;set;}
[外国钥匙(“RoleId”)]
公共虚拟IList角色{get;set;}
}
当我尝试从模型创建控制器时,它会抛出一个复杂类型的错误。我还尝试了在模型类名上方使用
[ComplexType]


任何人都可以看看这一点,让我建议我应该在数据库或代码方面做些什么?

您不应该在API/视图模型中使用EF模型。造成这种情况的原因有很多,其中一个原因是,当序列化对象时,外键关系会导致无限循环。将EF模型映射到DTO,并在控制器中使用它返回数据。感谢@strickt01的回复。你能详细说明你的建议吗?我听不懂你的意思?
 public class UserRole
    {
        public int UserId{ get; set; }
        public int RoleId { get; set; }
        [ForeignKey("UserId")]
        public virtual IList<User> User { get; set; }
        [ForeignKey("RoleId")]
        public virtual IList<Role> Role { get; set; }
    }