Asp.net 复杂LINQ查询(多连接)

Asp.net 复杂LINQ查询(多连接),asp.net,linq,join,Asp.net,Linq,Join,我是LINQ的新手,我的问题有点麻烦。我试图获取与特定组关联的调查(SurveyGroups表是赋值表)。然而,一旦我将模型返回到视图中,就会得到一个空错误 这就是我到目前为止所做的: public ActionResult Index() { var userID = User.Identity.GetUserId(); var clientID = _db.Users.Where(u => u.Id == userID).Select(u =&g

我是LINQ的新手,我的问题有点麻烦。我试图获取与特定组关联的调查(SurveyGroups表是赋值表)。然而,一旦我将模型返回到视图中,就会得到一个空错误

这就是我到目前为止所做的:

public ActionResult Index()
    {
        var userID = User.Identity.GetUserId();
        var clientID = _db.Users.Where(u => u.Id == userID).Select(u => u.ClientID).FirstOrDefault();
        var userGroups = _db.UserGroups.Where(x => x.UserID == userID).ToList();

        var groupedSurveys = (from t1 in userGroups
                              join t2 in _db.SurveyGroups
                    on t1.GroupID equals t2.GroupID
                    select new { t2.SurveyID }).ToList();

        var surveys = (from t11 in groupedSurveys
                       join t22 in _db.Surveys.Where(s => s.ClientID == clientID)
                       on t11.SurveyID equals t22.SurveyID
                       select new { t22.ClientID, t22.Name}).ToList();

        return View("~/Views/User/Dashboard.cshtml", surveys);
    }
  • 首先,我得到用户ID
  • 我获取与该用户ID关联的ClientID
  • 然后我将userGroups对象与SurveyGroup表连接起来
  • 最后,我将groupedSurveys与Surveys表连接起来
  • 任何指导都将不胜感激

    更新:

    我收到的错误如下:

    传入字典的模型项的类型为“System.Collections.Generic.List
    1[f_uAnonymousType6
    5[System.Int32,System.Nullable
    1[System.Int32],System.Nullable
    1[System.Int32],System.Nullable
    1[System.Int32],System.String],但本词典需要“System.Collections.Generic.IEnumerable”类型的模型项。
    1[SM_XPRESS.Models.Survey]。

    在这一行:

    select new { t22.ClientID, t22.Name}
    
    …您正在基于
    t22
    中的数据(这是一个调查记录)创建一个匿名类型的新实例

    但是,需要提供给视图的列表必须是调查实例的列表,而不是匿名类型实例的列表

    所以把它改成

    select t22
    

    你可以走了。

    一旦我将模型返回到视图,就会得到一个空错误。你能发布导致错误的代码吗?@JohnWu用错误更新了OP,我收到了。同样,你能发布导致错误的代码吗?这几乎总是一个好主意。我们需要查看失败的代码,才能告诉您错误所在。@JohnWu更新了我的ActionResult的代码部分,对混淆表示歉意。提示:您很少需要在Linq中使用“加入”。太棒了!非常感谢你!工作得很有魅力。