使用Linq连接ASP.NET MVC中的表的问题

时间:2011-07-28 16:44:51

标签: asp.net asp.net-mvc entity-framework

我曾经有一个直接控制器返回像这样的视图

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子句,它会再次连接起作用(就像不抛出异常一样工作)

1 个答案:

答案 0 :(得分:3)

尝试将where子句更改为:

where ug.UserId != 1