переменная члена класса и «Запросы с локальными коллекциями не поддерживаются» - PullRequest
2 голосов
/ 19 июля 2011

У меня есть список, который служит источником оператора IN.Типичный запрос linq-to-sql:

public void foo()
{
   var inThisListOnly = new string[] { "VA", "MA" };

   var result = (
       from o in Orders
       where inThisListOnly.Contains(o.State)
       select o
   )
   .ToDictionary( o => o.Id, o => o );
}

все работает отлично.Я хочу сохранить несколько циклов ЦП, переместив inThisListOnly за пределы foo, чтобы стать переменной-членом класса.

public class FooClass
{
    private readonly string[] _inThisListOnly = new string[] { "VA", "MA" };

    public void foo()
    {
        var result = (
          from o in Orders
          where _inThisListOnly.Contains(o.State)
          select o
        )
        .ToDictionary( o => o.Id, o => o );
    }
}

После изменения моя программа начинает выдавать пресловутые «Запросы с локальными коллекциями неподдерживается "исключение.Кто-нибудь даст объяснение поведению?В некотором смысле, не является ли _inThisListOnly менее локальным, чем inThisListOnly?

Спасибо.

1 Ответ

0 голосов
/ 18 октября 2011

Какой тип заказа? Это локальный перечислимый или linq to sql предоставил таблицу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...