EntityFramework异常:如何查看真实查询

时间:2016-04-28 05:43:59

标签: mysql entity-framework

有时我会调用SaveChanges的EntityFramework异常。 我看到这样的消息:“更新条目时发生错误。有关详细信息,请参阅内部异常。” 我已经记录了堆栈跟踪,内部异常和东西,但没有明确的问题解释。我希望看到真正的查询(它是一个mysql数据库),带有参数。你知道我怎么能看到或记录真正的查询吗?

由于

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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