在我的一个WPF应用程序中,我正在全球范围内处理我的异常。我使用下面的代码来处理异常。
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
if (e.Exception is System.Data.Entity.Core.EntityCommandExecutionException)
{
var entityException = e.Exception as System.Data.Entity.Core.EntityCommandExecutionException;
if (entityException.HResult == -2146232004) // Schema is different than expected
{
MessageBox.Show("Database exists but schema is different");
e.Handled = true;
}
}
}
它按预期工作。但我使用多个DbContext具有不同的连接字符串,我想在错误中显示数据库的名称。我在EntityCommandExecutionException中找不到连接字符串。如何获取数据库名称?
答案 0 :(得分:0)
假设您的错误处理程序中的某个位置可以访问发生错误的DbContext对象,那么您可以使用dbContextObject.Database.Connection属性来访问SqlConnection对象,该对象提供有关数据库连接的各种属性,包括数据库的名称。