Visual studio 2012 Visual Studio 2012代码在默认情况下仍然首先使用SQLEXPRESS

Visual studio 2012 Visual Studio 2012代码在默认情况下仍然首先使用SQLEXPRESS,visual-studio-2012,entity-framework-5,sql-server-express,localdb,Visual Studio 2012,Entity Framework 5,Sql Server Express,Localdb,我创建了一个全新的WebAPI项目,创建了一个简单的代码优先模型(一个带有id和dbcontext对象的类,就是这样),并在PackageManager控制台中运行了EnableMigrations 我注意到它在SQLEXPRESS而不是LocalDB中创建数据库,尽管Web.config文件中的DefaultConnection字符串指向(LocalDB)。这会导致后续查询失败,声称数据库尚未初始化 如何让VS 2012中的Enable Migrations命令指向LocalDB而不是SQLE

我创建了一个全新的WebAPI项目,创建了一个简单的代码优先模型(一个带有id和dbcontext对象的类,就是这样),并在PackageManager控制台中运行了EnableMigrations

我注意到它在SQLEXPRESS而不是LocalDB中创建数据库,尽管Web.config文件中的DefaultConnection字符串指向(LocalDB)。这会导致后续查询失败,声称数据库尚未初始化

如何让VS 2012中的Enable Migrations命令指向LocalDB而不是SQLExpress?我已尝试安装SQL Management Studio 2012 Express并停止SQLEXPRESS数据库,但这只会导致Enable Migration命令失败

有什么建议吗


注意:我已经安装了VS 2010,以及它附带的所有默认软件(如SQL Server),所以这可能会造成干扰。

我所能找到的是:

如果安装了SQL Express(包含在Visual Studio 2010中),则会在本地SQL Express实例(.\SQLEXPRESS)上创建数据库。如果未安装SQL Express,则代码将首先尝试使用LocalDb((LocalDb)\v11.0)-LocalDb包含在Visual Studio 2012中

注意:如果安装了SQL Express,即使您使用的是Visual Studio 2012,它也将始终具有优先权


.

看起来您必须实际指定(在上下文构造函数中)上下文应该使用DefaultConnection。例如:

公共类QueensFinalDb:DbContext
{
公共财政部
:base(“name=DefaultConnection”)
{
}
}
否则,我猜它使用machine.config中的第一个连接字符串,在我的例子中是:



你曾经得到过这个问题的答案吗?我也有同样的问题。汤姆——这正是我一直在寻找的。我遇到了同样的问题,每次我尝试更新数据库时,它都会在SQLExpress中创建它。在上下文中实现对构造函数的更改非常有效。。。ThanksFantastic-SqlExpress总是在您不这样做时使用。我很难找到我那该死的桌子在哪里!另一个+1已为另一个项目完整安装了SQL 2012,但这修复了它试图使用该版本的问题。