实体框架MigrateDatabaseToLatestVersion在数据库' master'中拒绝CREATE DATABASE权限错误

时间:2017-02-15 00:52:58

标签: c# asp.net asp.net-mvc entity-framework

我一直在浏览这里的问题,但还没有遇到任何可以处理我的问题的事情,如果这是重复而且我错过了某些事情,请道歉。

我有一个带有Entity Framework Code First的ASP.Net MVC项目。 在我的Dbcontext中,我有;

public Context() : base("DatabaseName")
{
    System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
}

在我的网络配置中,我有;

<connectionStrings>
<add name="DatabaseName" connectionString="connsection string is here"/>
</connectionStrings>

部署我的应用程序后,我收到错误

  

&#39;在数据库&#39; master&#39;中创建数据库权限被拒绝。&#39;立刻   它试图第一次访问Context。

我不明白的是如何阻止它尝试创建数据库并只使用我提供的连接字符串。数据库已经存在(它在共享主机上,所以我无法控制它)我知道连接字符串是正确的,因为我在相同的应用程序中安装了Hangfire,使用相同的连接字符串和它已经成功创建了表格,但由于某些原因,EF不会在数据库中创建表格,而是尝试创建一个表格,而这是不可能做到的。

实体框架与配置文件安装在同一个项目中,实际上它只是一个项目应用程序。

我尝试创建另一个数据库并添加第二个连接字符串,以防Hangfire阻止EF使用它,但遇到了同样的问题。我还尝试将完整的连接字符串直接放入上下文中的:base(""),但它没有效果。

1 个答案:

答案 0 :(得分:0)

尝试按名称connectionString

public Context()
            :base("name=DbConnection")
        {

        }

Web.config文件中添加

 <connectionStrings>
    <add name="DbConnection" connectionString="Data Source=serveraddress;Persist Security Info=False;User ID=usename;Password=pass;Initial Catalog=databasename" providerName="System.Data.SqlClient" />
  </connectionStrings>