【发布时间】:2016-02-03 02:02:28
【问题描述】:
我从发布的表单数据中获取用户,但有时它可能是空的。
var users = Request.Form.GetValues("users[]") == null ? null : Request.Form.GetValues("users[]").ToArray();
因此,如果用户为空,则用户变为 null。但是,下面的 Linq 查询不起作用。
var submissions = db.QuickSearchViews.Where(x => (users != null && users.Contains(x.UserId)))
.ToList();
错误:
附加信息:无法创建类型为空的常量值 '系统.字符串 []'。只有实体类型、枚举类型或原语 在此上下文中支持类型。
【问题讨论】:
-
能否请您也发布堆栈跟踪?另外,这是实体框架吗?如果是这样,我会发布一个答案。
-
也许不使用
Contains(),而是使用Any()。见here。 -
这是使用
var关键字会降低可读性的一种情况。你真的应该显示完整的类型或向我们提供minimal reproducible example。
标签: c# asp.net linq linq-to-entities