【问题标题】:entity framework 4.1 code first CREATE DATABASE permission denied in database 'master'实体框架 4.1 代码首先创建数据库权限在数据库“主”中被拒绝
【发布时间】:2011-09-06 10:24:05
【问题描述】:

我使用 Entity Framework 4.1 创建了一个通用存储库项目,当将其作为现有项目添加到项目时,它与我的项目配合得很好,但当仅作为 dll 引用时,它对它们不起作用。

我收到这个错误

数据库“master”中的 CREATE DATABASE 权限被拒绝。

但我已添加 app.config 文件并将相关连接字符串设置到我的 SQL Server 2005 数据库(我已使用 DbContext 作为我的上下文类型)

请帮帮我。

这是我的连接字符串:

<configuration>
   <connectionStrings>
      <add name="TasksEntities" 
           connectionString="server=(local); database=Tasks; trusted_connection=false; User=sa; Password=****; Persist Security Info=True" 
           providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    我自己也遇到了这个问题。连接字符串名称必须与 DbContext 子类的类名称完全匹配。如果没有,EF 将找不到连接字符串,并会尝试回退到做其他事情(嵌入 SQL?),这在我的机器上不起作用(我安装了完整的 SQL Server)。

    【讨论】:

    • 只有当您没有在上下文的构造函数中指定连接字符串名称时,如下所示:public MyDbContext() : base("name=Blah")
    【解决方案2】:

    例如,如果您正在处理多个项目,则必须验证连接字符串的配置位置。如果您的解决方案中的启动项目配置了连接字符串,并且包管理器控制台中指向的项目也配置了 EF 迁移(在“默认项目”中)。

    您可以在包管理器中使用命令运行Update-Database -Verbose启动项目和源迁移是什么或指定将参数放入命令中:

    Update-Database -SourceMigration MvProject.Data -StartUpProjectName MyProject.Web -Verbose

    【讨论】:

      【解决方案3】:

      似乎您在连接字符串中的凭据应该有权在您的服务器上创建数据库。登录到您的数据库服务器并检查您的用户帐户是否具有正确的权限。这将是http://www.sqlservercurry.com/2008/04/resolving-create-database-permission.html

      【讨论】:

      • 当我们将它的项目添加到另一个相关数据库中时,它就可以正常工作,并且使用提到的连接字符串用户 ID 创建没有错误
      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多