Проблем с entity framework


1

Здравейте, от няколко дни се опитвам да реша един проблем и все не ми се получава (както се казва в приказките мисля премислям и ТЕСТВАМ), но винаги резултата е един и същ (а имено не става това което искам да се получи).

Въведение

създадени класове с code first  и  изпълнявам командите (enable-migration и update-database) резултата е сполучлив, но когато реша да барна модела за потребителя (да му добавя полета с допълнителна информация за него и тн) резултата е негативен. Създава ми се друга база не тази която искам която се намира на (localdb) и всичко ми се обърква. 

Въпрос 

Как да направя така, че когато  барна модела за потребителя (userprofile) базата да не отива там където тя си знае а да отиде там където аз искам. 

Тестове

Изпълнявани са всички команди и различните им под команди, резултат  този който не ме остройва. 

Пс: Проекта се пише на ASP.NET MVC 4.

Поздрави, 

Венцислав Динев


в Databases от Венци Динев (0 точки)


Отговори



0

Здравей,

След като enable-неш миграциите, мисля че, трябва да се появи един class Configuration(може би беше в подпапка Migrations), та на този class в конструктора трябва да му добавиш тези два реда

public Configuration() 
{

    this.AutomaticMigrationsEnabled = true;

    this.AutomaticMigrationDataLossAllowed = true;

}

(като второто Property може и да е излишно в твоя случай)

после към DbContext конструктора трябва да посчиш конфигурация на миграцията, която искаш да използваш и стратегията на миграция на базата, т.е 

public YourDbContenxt() 
{
    Database
       .SetInitializer(
             new MigrateDatabaseToLatest<YourDbContenxt, Configuration>());
}

Видовте Migration Strategy

CreateDatabaseIfNotExists (default)
DropCreateDatabaseIfModelChanges
DropCreateDatabaseAlways
MigrateDatabaseToLatestVersion
 

 

 

от vaster (215 точки)


0
Нещо не мога да те разбера - създава ти базата, но като направиш промяна по някое ентити и после мигрираш ти създава базата на ново место - това е невъзможно.

от Hachiko (380 точки)