我有一个List作为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 );
}
一切正常。我希望通过在foo之外移动toThisListOnly来保存几个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本地更少?
感谢。
答案 0 :(得分:0)
订单收集的类型是什么?是本地可枚举还是linq to sql提供的表?