私はIN演算子のソースとして機能するListを持っています。典型的な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の外でinThisListOnlyを移動することによって、いくつかの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ではありませんか?
ありがとうございました。
クエリで何をしているのかを示す必要があります。そのままにしておけば、クエリを繰り返し実行することはないので、何を表示しても何もスローされません。 – jason
次のステップは反復です。私はその結果を辞書に入れます。 –
@キャンディーレプロ! http://ideone.com/RG6Pz –