Список фильтров как параметр в скомпилированном запросе

У меня есть следующий скомпилированный запрос, который я хочу вернуть список "групп", которые не имеют "GroupID", который содержится в отфильтрованном списке:

CompiledQuery.Compile(ConfigEntities contexty, List<int> list) =>
    from c in context.Groups
    where (!csList.Contains(c.GroupID))
    select c).ToList()

Однако я получаю следующую ошибку во время выполнения:

Указанный параметр 'category' типа 'System.Collections.Generic.List`1[[System.Int32, mscorlib, версия =2.0.0.0, Culture= нейтральный, PublicKeyToken=b77a5c261364e126]]' недопустим. Поддерживаются только скалярные параметры (такие как Int32, Decimal и Guid).

Есть идеи?

1 ответ

Решение

Этот запрос будет хорошо работать в EF 4.

В EF 1 IEnumerable.Contains не поддерживается в L2E (с или без CompiledQuery). Есть обходной путь, хотя; Google "BuildContainsExpression`, или посмотрите здесь.

Другие вопросы по тегам