Изменить EF 4.1 Code First Default DB Расположение - PullRequest
8 голосов
/ 12 апреля 2011

Я работаю через Создание приложения MVC 3 с Code First и Entity Framework 4.1 на MSDN и застрял на "Также по умолчанию эта база данных будет базой данных SQL Express с именем, полученным из строго типизированного имени контекста, и ее файл будет находиться в папке данных SQL Express по умолчанию. "

Если я хочу изменить значение по умолчанию (например,поместить файл MDF в мою папку App_Data) как мне это сделать?У меня будет несколько разных контекстов (по одному для каждой основной функциональной области), и я хочу, чтобы они все жили в одной базе данных.

Ответы [ 2 ]

10 голосов
/ 12 апреля 2011

Вы определяете, где находится база данных, используя параметры подключения к файлу web.config. Вам просто нужно сделать Имя контекста = именем вашей строки подключения, чтобы, если ваш контекст был MyContext, вы могли определить местоположение следующим образом:

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


  </connectionStrings>
0 голосов
/ 03 апреля 2013

В ответ на ваш второй вопрос ...

"У меня будет несколько разных контекстов (по одному для каждой основной функциональной области), и я хочу, чтобы они все жили в одной базе данных."

Почему бы не попробовать ...

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; }
}

Вы получите один контекст и одно соединение, но ваш код разделен на несколько файлов.Надеюсь, это то, что вы пытаетесь достичь.

...