【发布时间】:2018-10-14 05:23:06
【问题描述】:
我是 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.List1[<>f__AnonymousType65[System.Int32,System.Nullable1[System.Int32],System.Nullable1[System.Int32],System.Nullable1[System.Int32],System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1 [SM_XPRESS.Models.Survey]'。
【问题讨论】:
-
一旦我将模型返回到我的视图中,我得到一个空错误。你能发布导致错误的代码吗?
-
@JohnWu 用错误更新了 OP,我收到了。
-
再次,您能发布导致错误的代码吗?这几乎总是一个好主意。我们需要查看失败的代码,以便告诉您它有什么问题。
-
@JohnWu 更新了我的 ActionResult 的代码部分,对造成的混乱表示歉意。
-
提示:你很少需要在 Linq 中使用“join”。