Asp.net 复杂LINQ查询(多连接)
我是LINQ的新手,我的问题有点麻烦。我试图获取与特定组关联的调查(SurveyGroups表是赋值表)。然而,一旦我将模型返回到视图中,就会得到一个空错误 这就是我到目前为止所做的: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
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);
}
1[f_uAnonymousType6
5[System.Int32,System.Nullable1[System.Int32],System.Nullable
1[System.Int32],System.Nullable1[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中使用“加入”。太棒了!非常感谢你!工作得很有魅力。