2016-04-28 3 views
0

時々、私はSaveChangesを呼び出す場所でEntityFramework例外が発生します。 このようなメッセージが表示されます。「エントリの更新中にエラーが発生しました。詳細は内部例外を参照してください。 私はスタックトレース、内部の例外などを記録しましたが、問題の明確な説明はありません。私は実際のクエリ(それはmysqlデータベースです)を見たいと思います。私は実際のクエリを見たりログインしたりする方法を知っていますか?EntityFramework例外:実際のクエリを見るにはどうすればいいですか

おかげ

答えて

0

あなたは正確に間違っていたかを知るようになるDbEntityValidationExceptionハンドラを使用することができます。

try{ 

    //Your code here 
} 

catch (DbEntityValidationException ex) 
{ 
    var errorMessages = ex.EntityValidationErrors 
    .SelectMany(x => x.ValidationErrors) 
    .Select(x => x.ErrorMessage); 
    var fullMessageError = string.Join("; ", errorMessages); 
    var exceptionMessage = string.Concat(ex.Message, "Exact Message " + fullMessageError); 


} 
catch (Exception ex) 
{ 
//General Exception here 
} 
+0

おかげですが、DbEntityValidationExceptionが発射されていません – testpresta

0

dbContext.Databaseのlogプロパティを設定し、EFによって生成された実際のクエリをログに記録できます。

using (var context = new MyDBContext()) 
{ 
    context.Database.Log = Console.Write; // This is where you setup where to log queries 

    // Your code here... 
} 

ありMSDNの詳細なドキュメントはhttps://msdn.microsoft.com/en-us/data/dn469464.aspx

関連する問題