更改EF 4.1代码优先默认DB位置

时间:2011-04-12 02:53:23

标签: code-first entity-framework-4.1

我正在使用MSDN上的Building an MVC 3 App with Code First and Entity Framework 4.1教程,并且仍然坚持“另外 默认 ,这个数据库将是一个SQL Express数据库,名称来自上下文的强类型名称,其文件将位于SQL Express默认数据文件夹中。“

如果我想更改默认值(例如将MDF文件放在App_Data文件夹中),我该怎么做?我将有几个不同的上下文(每个主要功能区域一个),并希望它们都存在于同一个数据库中。

2 个答案:

答案 0 :(得分:10)

使用web.config文件连接设置定义数据库所在的位置。 你只需要使Context Name =你的连接字符串名称,所以如果你的Context是MyContext你可以定义如下位置:

    <connectionStrings>
    <clear/>
        <add name="MyContext" 
         connectionString="Server=myServer;Database=MyDB;Uid=foo;Password=XXX; " 
         providerName="System.Data.SqlClient"
           />


  </connectionStrings>

答案 1 :(得分:0)

回答你的第二个问题......

“我将有几个不同的上下文(每个主要功能区域一个),并希望它们都存在于同一个数据库中。”

为什么不试试......

MyContext.cs

public partial class MyContext : DbContext
{
}

FooContext.cs

partial class MyContext
{
    public DbSet<Foo> Foos { get; set; }
}

BarContext.cs

partial class MyContext
{
    public DbSet<Bar> Bars { get; set; }
}

您最终会得到一个上下文和一个连接,但您的代码会分成多个文件。希望这就是你想要实现的目标。