5

次のデータがあり、Linq to Entities を使用してデータをフィルター処理したいのですが、例外が発生しています:

LINQ to Entities はメソッド 'System.String[] Split(Char[])' メソッドを認識せず、このメソッドはストア式に変換できません。

テーブルには次のデータがあります

1           HPM,BKM     NULL        1,2,3
2           HPM,BKM     L1,L2       1,2
3           KK,CC,ZZ,PP             3,4

そして、私は次のコードを書いています

var criteria_1="1";

var criteria_2="HPM,"

var Col4 = DB.Letter_Logic.Where(m => m.Col1.Equals(criteria_1)
            && m.Col2.Split(',').Contains(criteria_2)).ToList();

結果として値 1,2,3 が返されるはずです。

4

1 に答える 1

5

これは、Split(Char[]) を SQL 式に変換する方法がないためです。最初に ToList() を実行してから分割操作を実行する必要がありますが、分割式を使用してフィルター処理する前に、より多くの結果がコンピューターに返されることに注意してください。

var Col4 = DB.Letter_Logic.Where(m => m.Col1.Equals(criteria_1))
                          .ToList()
                          .Where(m => m.Col2.Split(',').Contains(criteria_2))
                          .ToList();
于 2012-11-27T01:53:31.077 に答える