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

时间:2014-09-02 17:39:30

标签: entity-framework ef-code-first code-first

我在VS2012中使用EF6来创建Code First应用程序。正在My Documents \ Sql Server数据库中创建数据库。如何告诉它在项目中的App_Data中创建数据库呢?

2 个答案:

答案 0 :(得分:0)

更改您的Connectionsstring:

<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" />

答案 1 :(得分:0)

实体框架确定app.config中的connectionstring使用哪个数据库,其名称与DbContext对象的名称相同。

您可以使用与DbContext相同的名称将此连接字符串更改为以下内容。

  <connectionStrings>
  <add   providerName="System.Data.SqlClient"  connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;" name="CRMContext"/>
</connectionStrings>

这里DbContext派生类将是CRMContext。你会找到如下的课程。

public class CRMContext:DbContext
{

}

如果您希望DbContext使用不同的连接字符串,您可以在其构造函数中传递它。

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

}

在这里,EF自动在App.config中搜索名为“SomeAnotherConnectionString”的连接字符串