【发布时间】:2014-07-30 10:09:37
【问题描述】:
我在 LINQ 中有这个 where 语句:
(users != null && users.Contains(x.Appointment.UserId))
用户是int[]。当我运行这段代码时,我遇到了一个异常:
无法创建类型为“System.Int32[]”的空常量值。仅有的 支持实体类型、枚举类型或原始类型 这个上下文。
我该怎么办?
【问题讨论】:
-
在尝试包含之前您不需要使用 ToList() 吗?
-
展示你的真实代码或演示问题的示例代码
-
您是否将用户复制到局部变量?
-
这是 LINQ-to-SQL 或实体框架,对吗?看起来它正在尝试将此 Where 查询转换为 SQL,但 LINQ 提供程序不知道如何处理数据库中的 int[]。
-
从你的 EF/LINQ 上下文中获取 null-guard (
users != null) ...