none
Как работать с двумя БД в entity framework 6 RRS feed

  • Общие обсуждения

  • Здравствуйте. Подскажите пожалуйста как работать в одном проекте с двумя базами данных одновременно?

    У меня была уже одна база данных теперь мне нужно добавить еще одну. Я удалил папку Migrations и заново сделал Enable-Migrations, но он говорит что найдено более чем один контекст и предлагает указать к какому именно контексту сделать енабл мигратион, а мне нужно чтобы оба контекста работали.


    22 марта 2015 г. 7:03

Все ответы

  • Контексты сконфигурированы в конфиг файлах? Configure multiple database Entity Framework 6



    Remote job for top developers

    • Изменено Dmitry Pavlov 22 марта 2015 г. 11:54 поправил подпись
    22 марта 2015 г. 11:53
  • нет, я так сделал

    public class DBEntity : DbContext
        {
            public DBEntity()
                : base("DataOther25")
            {
                Database.SetInitializer<DBEntity>(new CreateDatabaseIfNotExists<DBEntity>());
            }
            public DbSet<NotificationInfo> NotificationEFObj { set; get; }
            public DbSet<CryptoSignsAttachment> CryptoSignObj { set; get; }
            public DbSet<Attachment> AttachmentObj { set; get; }
            }

     и для второй

    public class DbAnother : DbContext
    
        {
            public DbAnother()
                : base("data0")
            {
                Database.SetInitializer<DbAnother>(new CreateDatabaseIfNotExists<DbAnother>());
            }
                public DbSet<NotificationInfo> NotificationEFObj { set; get; }
        }

    22 марта 2015 г. 12:32
  • Нашел вот такое решение http://stackoverflow.com/questions/21537558/multiple-db-contexts-in-the-same-db-and-application-in-ef-6-and-code-first-migra

     и понял что всетаки действительно лучше делать через конфиги, но я не могу понять как сделать конекшн стринг , в том примере что вы привели конекшнстринг для двух баз выглядит так 

    <add name="MainDb" connectionString="Data Source=|DataDirectory|\Db.sdf" providerName="System.Data.SqlServerCe.4.0" />
        <add name="AnotherDb" connectionString="Data Source=|DataDirectory|\AnotherDb.sdf" providerName="System.Data.SqlServerCe.4.0" />

    Я у себя пробовал чтото подобное сделать но не могу понять откуда взять путь к sdf файлу ??

    у меня файлов с таким расширением в папке  програмфайлс \sqlserver нет :( 

    сделал так , но всеравно не могу понять как сделать чтобы базы сами создавались на основе конфига, всеавно ведь приходиться  enable-migrations  делать  а он в свою очередь опять же видит что несколько контекстов и говорит что нужно папку с мигациями для каждого контекста отдельно создавать :(

    • Изменено Timur2008 22 марта 2015 г. 16:47
    22 марта 2015 г. 12:55