Linq 类成员变量和;不支持使用本地集合的查询";

Linq 类成员变量和;不支持使用本地集合的查询";,linq,linq-to-sql,Linq,Linq To Sql,我有一个列表作为IN运算符的源。典型的linq到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 =&

我有一个列表作为IN运算符的源。典型的linq到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之外,成为类的成员变量,从而节省一些CPU周期

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更具地方性吗



谢谢。

订单托收的类型是什么?是本地可枚举表还是linq to sql提供的表?

订单集合的类型是什么?是本地可枚举表还是linq to sql提供的表?

您需要显示查询的操作。目前,您所展示的内容在任何情况下都不会抛出,因为您从未对查询进行迭代。下一步是迭代。我把结果存入词典。@Candy不需要修改@我每次都能复制这个。凯蒂,不过我不知道。。。这是一个奇怪的问题。@BalaR您并没有使用LINQ to SQL,而是使用LINQ to Objects。您需要显示您对查询所做的操作。目前,您所展示的内容在任何情况下都不会抛出,因为您从未对查询进行迭代。下一步是迭代。我把结果存入词典。@Candy不需要修改@我每次都能复制这个。凯蒂,不过我不知道。。。这是一个奇怪的问题。@BalaR您没有使用LINQ to SQL,而是使用LINQ to ObjectsOrders是LINQ to SQL提供的表-DatabaseContext.Orders。我没有复制您的错误:(一切正常此问题上存在现有主题…请检查它们!请发布链接。我找不到任何参考。Orders是linq to sql提供的表-DatabaseContext。Orders。我没有复制您的错误:(所有内容都在运行中)此问题上存在现有主题…请检查它们!请发布链接。我找不到任何参考资料。