2015-11-13 2 views
0

Я все еще в процессе переноса моего старого проекта MVC на новейшие asp.net 5 MVC и EntityFramework 7. Для этого я сначала обратил проектирование существующей базы данных из старого проекта, используя ef команды. Это правильно создало все мои классы моделей (или, в основном, так). Я вручную отредактировал код, чтобы получить все начальные ошибки. У меня есть компиляция с почти никаким дополнительным кодом из исходного проекта. Другими словами, у меня есть только классы моделей и класс DbContext до сих пор в решении. Все это в сборке, и у меня вообще нет миграции в кодовой базе, а только в каталоге Migrations. То, что я подумал, будет иметь смысл - добавить переход к базовому уровню базы данных из того, что было реконструировано. Следует отметить, что мой DbContext наследует от IdentityDbContextcan not add migration to ef 7

public partial class STOrmContext : IdentityDbContext<ApplicationUser> 
{ 
} 

Мой проект разделен на две составляющие. Все базы данных и модели в сборке, а также материалы MVC в отдельном проекте.

enter image description here

, когда я печатаю

dnx ef command migrations add Initial 

Я получаю следующее сообщение об ошибке

The entity type 'Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin<string>' requires a key to be defined. 

Я предполагаю, что я просто не понимаю, как для начальной загрузки унаследованной базы данных в EntintyFramework 7 Может кто-то указать мне в правильном направлении.

+0

ли вы переопределить 'OnModelCreating' метод вашего' STOrmContext'? –

+0

да на самом деле, и на самом деле я нашел ответ сам. Оказывается, это было несколько вещей, о которых я не обращался. 1. Когда я сбрасывал конструкцию старой базы данных, она создавала модели для файлов идентичности из устаревшего приложения. Я удалил их. Мне также нужно было вызвать базовую OnModelCreating(), чтобы он мог настраивать свойства Identity. Думаю, мне следовало бы обратить внимание на то, что действительно происходит, прежде чем переходить на вопрос о StackOverflow –

ответ

0

Я сам нашел ответ.

Оказывается, это было несколько вещей, о которых я не обращался.

  • При обратном проектировании старой базы данных он создал модели для единиц идентичности из устаревшего приложения.
  • Я удалил их.
  • Мне также нужно было вызвать базовый OnModelCreating(), чтобы он мог настроить Идентификационный материал.

    protected override void OnModelCreating(ModelBuilder modelBuilder) { 
        base.OnModelCreating(modelBuilder); 
    } 
    

Я предполагаю, что я должен уделять больше внимания тому, что происходило на самом деле, прежде чем прыгать на вопрос о StackOverflow

Смежные вопросы