2016-05-27 7 views
0

一意の要素が存在する場合は取得しますが、存在しない場合はnullを取得しようとしています。FirstOrDefaultでクエリを実行するとエンティティSystem.NotSupportedExceptionが発生する

私の機能は次のとおりです。私のテスト文字列は、私がDataRowを先に問題がなかったことを確認するだけで、ここで

private Dealer GetOrCreateDealer(DataRow dataRow) 
{ 
     ModelCamwareContext localContext = new ModelCamwareContext(); 
     string test = dataRow["Dealer"].ToString(); 
     Dealer dealer = localContext.Dealers.Where(x => x.Name == dataRow["Dealer"].ToString()).FirstOrDefault(); 
     if (dealer != null) 
     { 
     ... 
     } 
     else 
     { 
     ... 
     } 
} 

、それが期待どおりに動作し、私が私のディーラーを選択したい文字列を与えます。

私が間違っていない限り、FirstOrDefaultは検索するディーラーがない場合には私に例外を与えてはいけません。

私が手例外:

A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll 
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll 
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll 

私は何を逃したのですか?

+0

完全な例外メッセージを確認する必要があります。ほとんどの場合、サポートされていない例外は 'x => x.Name == dataRow [" Dealer "]。ToString()'式によって発生します。 'x => x.Name == test) 'に置き換えてください。 –

+1

あなたはそうです、問題はそこから来ました。 ありがとうございます。 – Belterius

答えて

1

エンティティは、LINQ内のデータテーブル値を評価できません。

ModelCamwareContext localContext = new ModelCamwareContext(); 
    string test = dataRow["Dealer"].ToString(); 
    Dealer dealer = localContext.Dealers.Where(x => x.Name == test).FirstOrDefault(); 
    if (dealer != null) 
    { 

    } 
    else 
    { 

    } 
関連する問題