Entity framework 如何指定Entity Framework在数据库中的位置

Entity framework 如何指定Entity Framework在数据库中的位置,entity-framework,ef-code-first,code-first,Entity Framework,Ef Code First,Code First,我正在VS2012中使用EF6创建代码优先应用程序。正在My Documents\Sql Server数据库中创建数据库。我如何告诉它在项目中创建App_数据中的数据库?更改您的连接字符串: <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase-Demo.mdf;Initial Catalog=MyData

我正在VS2012中使用EF6创建代码优先应用程序。正在My Documents\Sql Server数据库中创建数据库。我如何告诉它在项目中创建App_数据中的数据库?

更改您的连接字符串:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase-Demo.mdf;Initial Catalog=MyDatabase-Demo;Integrated Security=True" providerName="System.Data.SqlClient" />

实体框架确定app.config中与DbContext对象同名的connectionstring要使用的数据库

您可以将这个与DbContext同名的connectionstring更改为以下内容

  <connectionStrings>
  <add   providerName="System.Data.SqlClient"  connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;" name="CRMContext"/>
</connectionStrings>
如果希望DbContext使用不同的connectionstring,可以在其构造函数中传递相同的connectionstring

using(var db = new CRMContext("SomeAnotherConnectionString"))
{

}

在这里,EF会自动在App.config中搜索名为“SomeAnotherConnectionString”的connectionstring

不起作用。它仍然将数据库放在我的SQLServerDatabases文件夹中。实际上,当我在web.config文件中有连接字符串时,EF会在内存中创建数据库,但不会创建表。然后,当我尝试访问它时,提供程序抛出一个异常,即无法打开数据库。mdf从未保存在任何我更改答案的地方。这是demoproject(Asp.Net MVC)中的连接字符串。->运行->注册一个用户->文件(MyDatabase Demo.mdf)已在我的App_数据文件夹中创建->右键单击App_数据文件夹->添加现有项目->选择my.mdf。。。我希望这会有帮助
using(var db = new CRMContext("SomeAnotherConnectionString"))
{

}