将列表筛选为已编译查询中的参数

时间:2010-05-24 01:09:07

标签: entity-framework linq.compiledquery

我有以下编译查询,我想返回一个“组”列表,这些“组”没有包含在过滤列表中的“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)。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

此查询在EF 4中可以正常工作。

在EF 1中,L2E不支持IEnumerable.Contains(有或没有CompiledQuery)。但是有一个解决方法; Google“BuildContainsExpression”或look here