Дозвуковой 3 - Поддерживает ли он запросы с использованием IEnumerable.Contains? - PullRequest
2 голосов
/ 17 июля 2009

Это происходит с ошибкой, так как метод «Содержит» не поддерживается.

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();

1 Ответ

4 голосов
/ 17 июля 2009

Не зная ничего о 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));
...