У меня есть список, который служит источником оператора 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?
Спасибо.