2011-09-06 58 views
5

我已经使用Entity Framework 4.1创建了一个通用的资源库项目,它作为一个现有项目添加到我的项目时效果很好,但它无法工作他们时,只是引用为DLL。实体框架4.1代码优先CREATE DATABASE权限在数据库'master'中被拒绝

我得到这个错误

在数据库中创建 '主' 否认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> 

回答

7

我刚碰到这个自己。连接字符串名称必须完全匹配您的DbContext子类的类名称。如果它不EF找不到连接字符串,并会尝试回到做我的机器上无法正常工作的其他东西(SQL嵌入?)(我已安装完整的SQL Server)。

+3

这只是如果您没有指定连接字符串名称你的上下文的构造函数是这样的:'public MyDbContext():base(“name = Blah”)' – joshcomley

+0

太棒了。把我放在正确的轨道上。 –

2

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

您可以在包管理器更新,数据库命令-Verbose什么是启动项目和源迁移或指定把参数的命令来运行:

更新,数据库-SourceMigration MvProject.Data - StartUpProjectName MyProject.Web -Verbose

相关问题