Дозвуковой 3 - Поддерживает ли он запросы с использованием IEnumerable.Contains?

2

Это не удается с ошибкой, когда метод "Содержит" не поддерживается.

List<int> usedID= new List<int> { 1, 2, 3 };
var f = WebPageContent.Find(x => !usedID.Contains(x.PageID));

Кажется странным, так что альтернативный подход?

Это также не работает:

var dd = from i in WebPageContent.All() 
         where !usedID.Contains(i.PageID) 
         select i;

Это, но это рекомендуемый подход:

var table = new WebPageContentTable(_db.DataProvider);
var g = new SubSonic.Query.Select()
            .From(table)
            .Where(table.ID)
            .In(usedID)
            .Execute();
Теги:
subsonic3
subsonic

1 ответ

4

Не знаю ничего о Subsonic/Subsonic 3 Я предлагаю вам использовать Any (или Contains) метод расширения и посмотреть, поддерживается ли он.

List<int> usedID= new List<int> { 1, 2, 3 };
var f = WebPageContent.Find(x => !usedID.Any( e => e == x.PageID));
  • 0
    Вы, да, парень, спасибо!
  • 1
    Если usedId пуст, Find падает из-за нуля. защищенное виртуальное выражение VisitUnary (UnaryExpression u) {операнд выражения = this.Visit (u.Operand); // ********** операнд НУЛЬ ЗДЕСЬ ******** if (operand! = u.Operand) {return Expression.MakeUnary (u.NodeType, operand, u.Type, u .method); } вернуть тебя; }
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню