「Where」でエンティティフレームワークを使用して奇妙なシナリオに遭遇しました。このシナリオでは、文字列を検索できますが、文字列は配列の一部ではありません。
これは機能します:
string line = sr.ReadLine();
string[] row = line.Split(';');
string code = row[0];
TableObject to = db.TableObject.Where(e => e.property == code).FirstOrDefault();
ただし、ステップ文字列を省略しcode = row[0]
て次のようにしてコードを単純化しようとすると、次のようになります。
string line = sr.ReadLine();
string[] row = line.Split(';');
TableObject to = db.TableObject.Where(e => e.property == (string) row[0]).FirstOrDefault();
次の例外が発生します。
System.NotSupportedException: The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.
row[0]
私は特に配列を。としてキャストしているので、例外が配列の表示について不平を言っているのは大変なこと(string)
です。
.ToString()
どちらも問題を解決しません。
これは大したことではないことは知っていますが、なぜそうなのか興味があります。