Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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# 使用.NETMVC5列出多对多表关系中的数据_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 使用.NETMVC5列出多对多表关系中的数据

C# 使用.NETMVC5列出多对多表关系中的数据,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我是Asp.NETMVC的学生开发员。我正在做一些小型的.NETMVC项目来学习我自己的,我第一次面对表之间的多对多关系。我有两个模型,它们具有多对多关系usersModel和groupsModel。它们由usersgroupModel以多对多的方式关联。在我的家庭控制器中,我试图用LinkQ代码列出表的内容。但我没有这样做。当我运行项目时,我的Index.cshtml模型中的值变为空。在这种情况下,我的视图会向我发送一个错误,如 “System.Data.Entity.Infrastructu

我是Asp.NETMVC的学生开发员。我正在做一些小型的.NETMVC项目来学习我自己的,我第一次面对表之间的多对多关系。我有两个模型,它们具有多对多关系
usersModel
groupsModel
。它们由
usersgroupModel
以多对多的方式关联。在我的家庭控制器中,我试图用LinkQ代码列出表的内容。但我没有这样做。当我运行项目时,我的
Index.cshtml
模型中的值变为空。在这种情况下,我的视图会向我发送一个错误,如

“System.Data.Entity.Infrastructure.DbQuery
1[f_uAnonymousType2
2[System.String,System.String]]”,但此词典需要类型为“System.Collections.Generic.IEnumerable`1[Agm.Models.EntityFramework.Groups]”的模型项

我可以做什么?在我的索引页中根据userId和groupId列出我的数据?你能帮我解决这个问题吗?从现在开始谢谢你

我的用户模型

    public class usersModel
        {
    public int userId { get; set; }
    public string userNameSurname { get; set; }
public virtual ICollection<Groups> Groups { get; set; }
    }
我的索引页:

@model IEnumerable<Agm.Models.EntityFramework.Groups>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.groupName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.groupImageUrl)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.groupName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.groupImageUrl)
        </td>
    </tr>
}

</table>
@model IEnumerable
@DisplayNameFor(model=>model.groupName)
@DisplayNameFor(model=>model.groupImageUrl)
@foreach(模型中的var项目){
@DisplayFor(modelItem=>item.groupName)
@DisplayFor(modelItem=>item.groupImageUrl)
}

创建如下视图模型:

 public class UsersGroupViewModel
 {
     public string GroupName{ get; set; }
     public string GroupImageUrl{ get; set; }
 }
将您的操作更改为以下操作:

public ActionResult Index()
        {   
             var userGroups = (from g in db.Groups
                             from u in g.Users
                             select new UsersGroupViewModel()
                             {
                                GroupName = g.groupName,
                                GroupImageUrl = g.groupImageUrl
                             }).ToList();
           return View(userGroups);
        }
@model List<UsersGroupViewModel>
并将视图模型更改为此模型:

public ActionResult Index()
        {   
             var userGroups = (from g in db.Groups
                             from u in g.Users
                             select new UsersGroupViewModel()
                             {
                                GroupName = g.groupName,
                                GroupImageUrl = g.groupImageUrl
                             }).ToList();
           return View(userGroups);
        }
@model List<UsersGroupViewModel>
@型号列表

我们正在为您服务,谢谢。这是我的项目的另一种方法。实际上,在您回答我之前,我在Sql数据库中找到了一个存储过程解决方案。