筛选列表作为已编译查询中的参数
我有以下已编译的查询,我想返回一个“组”列表,这些“组”不具有包含在筛选列表中的“GroupID”:
CompiledQuery.Compile(ConfigEntities contexty, List<int> list) =>
from c in context.Groups
where (!csList.Contains(c.GroupID))
select c).ToList()
但是,我收到以下运行时错误:
“System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c261364e126]]”类型的指定参数“categories”无效。仅支持标量参数(例如 Int32、Decimal 和 Guid)。
有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此查询在 EF 4 中可以正常工作。
在 EF 1 中,L2E 不支持
IEnumerable.Contains
(无论有或没有CompiledQuery
)。不过,有一个解决方法; Google“BuildContainsExpression`,或看这里。This query will work fine in EF 4.
In EF 1,
IEnumerable.Contains
isn't supported in L2E (with or withoutCompiledQuery
). There is a workaround, though; Google "BuildContainsExpression`, or look here.