2017-11-16 10 views
0

を取得したSystem.Object認識していない私は、エンティティクエリにLINQのからメッセージLINQは方法が(Int32、Int32)をオーバーライドします方法

List<int> meas_i = wc.measures 
    .Where(meas => meas.shortname == (valueArray[i, 8] ?? "").ToString()) 
    .Select(meas => meas.idmeasure) 
    .ToList<int>(); 

を一覧を取得しようとしていますが、実行した後、私は次を得ます例外(suppportedない)メッセージ:

型「System.NotSupportedException」の未処理の例外がComplexWorkWinDraw.exe

で発生しました追加情報:メソッドを認識しないエンティティへのLINQ 'System.Object Get(Int32、Int32)'メソッドを呼び出すと、このメソッドは をストア式に変換できません。

助けてください。すべて

+0

https://stackoverflow.com/help/someone-answers – mjwills

答えて

3

のおかげで、クエリの前に変数にこれを保管してください:valueArray[i, 8]

string shortName = (valueArray[i, 8] ?? "").ToString(); 

List<int> meas_i = wc.measures 
    .Where(meas => meas.shortname == shortName) 
    .Select(meas => meas.idmeasure) 
    .ToList<int>(); 

このクエリですべてがSQLに変換する必要があります。しかし、この値はレコード/項目に関係しないので、クエリの前に別の変数に格納することができます。

+0

これで大丈夫です。どうもありがとうございました –

関連する問題