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