EntityFramework迁移尝试创建现有数据库

Flo*_*ont 11 c# entity-framework ef-migrations

我们正在我们的登台服务器上部署一个简单的ASP.NET MVC应用程序,当EntityFramework尝试迁移现有数据库时,我们收到以下错误.

CREATE DATABASE permission denied in database 'master'. 
Run Code Online (Sandbox Code Playgroud)

情况如下:

  • 这是迁移首次运行.
  • 数据库已经存在(它实际上是一个Umbraco数据库).

看来下面的方法(来自EntityFramework)返回false,显然应该返回true:

System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists() 
Run Code Online (Sandbox Code Playgroud)

数据库初始化程序具有以下代码:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());
Run Code Online (Sandbox Code Playgroud)

自动迁移已关闭,因为我们正在使用基于代码的迁移.

connectionstring指向正确的数据库,用户对该数据库具有db_owner权限.用户无权访问服务器上的其他表.

这是个常见的问题吗?有谁知道这方面的解决方案?

日Thnx!

Mar*_*rty 3

确保数据库存在 - 执行以下脚本

IF db_id(N'MyDatabaseName') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'MyDatabaseName'
Run Code Online (Sandbox Code Playgroud)

假设用户有权查询'sys.databases'数据库列表。如果此查询失败 - EF 认为 DB 尚未创建并尝试再次创建它。

确保执行迁移的用户能够成功执行上面的查询