我在VS2012中使用EF6来创建Code First应用程序。正在My Documents \ Sql Server数据库中创建数据库。如何告诉它在项目中的App_Data中创建数据库呢?
答案 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”的连接字符串