我曾经有一个直接控制器返回像这样的视图
return View(db.Stuff.ToList());
这很好用。我开始尝试一下,发现这个:
var items = from g in db.Stuff
select g;
return View(items);
......也行得正常。但是,当我尝试加入另一个表时:
var items = from g in db.Stuff
join ug in db.OtherStuff on g.Id equals ug.StuffId
where !ug.UserId.Equals(1)
select g;
return View(items);
我在视图中收到错误消息:
无法创建“System.Object”类型的常量值。在此上下文中仅支持原始类型(例如Int32,String和Guid')。
这是为什么?另一个奇怪的事情是,如果我注释掉where子句,它会再次连接起作用(就像不抛出异常一样工作)
答案 0 :(得分:3)
尝试将where子句更改为:
where ug.UserId != 1