无法使用EntityCommandExecutionException

时间:2017-03-01 08:00:08

标签: c# entity-framework ef-code-first code-first

在我的一个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中找不到连接字符串。如何获取数据库名称?

1 个答案:

答案 0 :(得分:0)

假设您的错误处理程序中的某个位置可以访问发生错误的DbContext对象,那么您可以使用dbContextObject.Database.Connection属性来访问SqlConnection对象,该对象提供有关数据库连接的各种属性,包括数据库的名称。