Visual Studio 2012 Code First still uses SQLEXPRESS by default

做~自己de王妃 提交于 2019-12-07 02:38:12

问题


I created a brand new Web API project, created a simple Code First model (one class with an id and the dbcontext object, and that's it), and ran Enable-Migrations in the package manager console.

I noticed that it creates the database in SQLEXPRESS rather than LocalDB, despite the DefaultConnection string pointing to (LocalDB) in the Web.config file. This causes subsequent queries to fail, claiming that the database hasn't been initialized.

How do I get the Enable-Migrations command in VS 2012 to point to LocalDB rather than SQLExpress? I've tried installing SQL Management Studio 2012 Express and stopping the SQLEXPRESS database, but that just causes the Enable-Migration command to fail.

Any tips?

Note: I have VS 2010 installed, along with all the default software that it comes with (like SQL Server), so perhaps that's interfering.


回答1:


All I could find was this:

If SQL Express is installed (included in Visual Studio 2010) then the database is created on your local SQL Express instance (.\SQLEXPRESS). If SQL Express is not installed then Code First will try and use LocalDb ((localdb)\v11.0) - LocalDb is included with Visual Studio 2012.

Note: SQL Express will always get precedence if it is installed, even if you are using Visual Studio 2012

Here.




回答2:


Looks like you have to actually specify (in the context constructor) that the DefaultConnection should be used by the context. For example:

public class QueensFinalDb : DbContext
{
    public QueensFinalDb()
        : base("name=DefaultConnection")
    {

    }
}

Otherwise I'm guessing it uses the first connection string in machine.config, which in my case is:

<connectionStrings>
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>


来源:https://stackoverflow.com/questions/14917849/visual-studio-2012-code-first-still-uses-sqlexpress-by-default

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!