c# - ASP.NET MVC 4 EF6 无法连接到 SQL Server Express 数据库

标签 c# asp.net-mvc database entity-framework sql-server-express

当我从 LocalDb 迁移到 SQL Server Express 时,出现一个奇怪的错误。这是错误:

This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection.

当我尝试 CreateDatabaseIfNotExists 时,会发生此错误关于上下文初始化。

这是我的连接字符串:

<add name="DefaultConnection" 
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=AlvinCMS;MultipleActiveResultSets=True;" 
     providerName="System.Data.SqlClient" />

这是我的背景:

public class AlvinCMSMigrationDBContext : DbContext
{
    public AlvinCMSMigrationDBContext() : base("DefaultConnection")
    {
        Database.SetInitializer<AlvinCMSMigrationDBContext>(new CreateDatabaseIfNotExists<AlvinCMSMigrationDBContext>());
    }

我在 global.asax 上启动数据库:

protected void Application_Start()
{ 
    //Check And Init Database
    Alvin_CMS.App_Start.DatabaseConfig.Initialize();

最后这是我的初始化代码:

public static void Initialize()
{
    Alvin_CMS.Models.AlvinCMSMigrationDBContext migrationDB = new Models.AlvinCMSMigrationDBContext();

    try
    {
        if (!migrationDB.Database.Exists())
        {
            migrationDB.Database.Initialize(false); //ERROR HERE!

            AlvinCMSExtension.Models.AccountDBContext accountDB = new AlvinCMSExtension.Models.AccountDBContext();
            accountDB.Database.Initialize(false);

            SetDefaultValue(migrationDB);
        }

        migrationDB.Database.Initialize(false);
    }
    catch (Exception e)
    {
        migrationDB.Database.Delete();
        AlvinCMSExtension.Helper.Log(e);
    }
}

我不知道我的代码出了什么问题,因为当我使用 LocalDb 时一切都很好,但现在我什至无法连接到我的数据库。

以下是我解决此问题的尝试:

  1. 我输入了Persist Security Info = True;Trusted_Connection=False; - 仍然产生相同的错误。

  2. 我尝试更改 Database.SetInitializer<AlvinCMSMigrationDBContext>(null);但如果数据库不存在,我需要创建它,所以这对我来说不是一个解决办法

最佳答案

您可以使用连接字符串,如下所示。

<add name="DefaultConnection" connectionString="Server=localhost; Database= 
AlvinCMS;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

关于c# - ASP.NET MVC 4 EF6 无法连接到 SQL Server Express 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39423863/

相关文章:

c# - ASP.NET MVC - 仅发回一半的类型化 View 模型?

asp.net-mvc - 具有复杂路由的 ASP.Net MVC - 如何保持 "sane"?

c# - 来自部分内部的 Asp.Net MVC 父 Html.ViewBag

php - 通过PHP在数据库中插入度数符号

MySQL 正确比较和排除结果

c# - 如何在 C# 中创建向量

c# - ASP.NET ScriptManager 输出未包含在 ASP.NET 部分缓存 (ascx) 中

asp.net - 如何在 EF Core 中向身份用户添加外键?

c# - 查找序列中缺失和重叠的数字

c# - 移动图片框元素