EF Code First - 创建数据库 - 用户登录失败

Ada*_*dam 7 entity-framework ef-code-first entity-framework-5

我最初设置的EF代码是连接到现有数据库的.这工作正常.

然后我对POCO进行了一些更改,并决定让代码首先为我生成新数据库.

获取错误:无法打开登录请求的数据库\"MyDatabase \".登录失败.\ r \n登录用户'DOMAIN\username'失败.

我删除了旧数据库,但我没有更改连接字符串:

<add name="MyDatabaseContext" connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我的本地计算机上有一个sql server 2008实例,我的域用户名是"sysadmin"角色.

我尝试了各种数据库初始化程序,我得到了同样的错误.它在第一次查询调用时失败,但代码首先不创建数据库.我可以将连接字符串指向旧数据库的副本(在更改之前)并且它将正常运行,除非它是我的旧模式,即使我指定了DropCreateDatabaseAlways初始化程序.这没有意义,也没有遵循我在家用机器上使用代码的经验.

使用Visual Studio 2012和EF5.

我需要能够让代码首先生成一个新的数据库.到底是怎么回事?

Ada*_*dam 8

发现我的DbContext类中有一个静态构造函数,它覆盖了数据库初始化程序.

static MyDbContext()
        {
            Database.SetInitializer<MyDbContext>(null);
        }
Run Code Online (Sandbox Code Playgroud)

代码第一个逆向工程师会将其放入,因此您不会覆盖现有数据库.当我改变时,我没有想到它.

希望这会帮助其他人.