Ошибка при преобразовании проекта из Code-first в Database-First

Я работал над проектом с подходом «сначала код» и знаю, что мне нужно преобразовать его в подход «сначала база данных», потому что у меня есть некоторая логика, которую я должен выполнить через хранимую процедуру.

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

Во всяком случае, я переместил таблицы идентификации в новую базу данных.

У меня есть эта ошибка,

Свойство «Утверждения» для типа «AspNetUser» не является свойством навигации. Методы Reference и Collection можно использовать только со свойствами навигации. Используйте метод Property или ComplexProperty.

и в OnModelCreating я добавил эти строки

    modelBuilder.Entity<AspNetUser>().ToTable("AspNetUsers");
    modelBuilder.Entity<AspNetUserRole>().ToTable("AspNetUserRoles");
    modelBuilder.Entity<AspNetRole>().ToTable("AspNetRoles");
    modelBuilder.Entity<AspNetUserClaim>().ToTable("AspNetUserClaims");
    modelBuilder.Entity<AspNetUserLogin>().ToTable("AspNetUserLogins");

    modelBuilder.Entity<AspNetUser>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    modelBuilder.Entity<AspNetRole>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    modelBuilder.Entity<AspNetUserClaim>().Property(r => r.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

любое решение для этого?

Обновление (1)

Когда я меняю строку подключения, она дает мне эти ошибки

Во время создания модели были обнаружены одна или несколько ошибок проверки: AwesomeMvcDemo.Models.IdentityUserRole: : EntityType 'IdentityUserRole' не имеет определенного ключа. Определите ключ для этого EntityType. AwesomeMvcDemo.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' не имеет определенного ключа. Определите ключ для этого EntityType. IdentityUserRoles: EntityType: EntitySet «IdentityUserRoles» основан на типе «IdentityUserRole», для которого не определены ключи. IdentityUserLogins: EntityType: EntitySet «IdentityUserLogins» основан на типе «IdentityUserLogin», для которого не определены ключи.


person Loai    schedule 28.12.2016    source источник
comment
Во-первых, OnModelCreating предназначен для Code First, а не для EDMX. Во-вторых, вы можете использовать хранимые процедуры в Code First. Сначала переключиться обратно на базу данных   -  person Steve Greene    schedule 28.12.2016
comment
@SteveGreene Я использую OnModelCreating, чтобы связать Entities с таблицей Associated в базе данных, если я создам хранимую процедуру в базе данных, которая будет удалена, когда я попытаюсь повторно инициализировать базу данных, верно?   -  person Loai    schedule 28.12.2016
comment
@SteveGreene я не нашел ничего, связанного с моим вопросом, в вашем размещенном URL-адресе.   -  person Loai    schedule 28.12.2016
comment
Существуют различные методы для заполнения хранимых процедур, чтобы они не стирались при создании базы данных.   -  person Steve Greene    schedule 28.12.2016
comment
спасибо за это, но сейчас мне нужно переключить мой проект на базу данных, потому что это срочно.   -  person Loai    schedule 28.12.2016
comment
Хорошо, моя первая ссылка говорит об этом. Вот еще один. В основном вам нужно будет создать EDMX и классы. Если у вас есть аннотации, которые вы хотите сохранить, вам нужно будет создать частичные классы, которые не стираются при изменении моделей.   -  person Steve Greene    schedule 28.12.2016
comment
@SteveGreene Большое спасибо, я посмотрел на это и сделал все, что с этим связано, а также добавил и настроил частичные классы, но после этого я все еще получил ошибку, которая находится в моем вопросе.   -  person Loai    schedule 28.12.2016
comment
OnModelCreating не имеет значения в базе данных в первую очередь, то есть в первую очередь для кода. Ваш контекст наследуется от IdentityDbContext? Как выглядит строка подключения?   -  person Steve Greene    schedule 28.12.2016
comment
@SteveGreene хорошо, я удалил все в OnModelCreating   -  person Loai    schedule 28.12.2016
comment
Строки подключения ‹add name=JubailEntities connectionString=metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System .Data.SqlClient;строка подключения поставщика=источник данных=LOAI\LOAI;начальный каталог=dbtest;интегрированная безопасность=True;MultipleActiveResultSets=True;App=EntityFramework providerName=System.Data.EntityClient /›   -  person Loai    schedule 28.12.2016
comment
@SteveGreene У меня есть обновление сообщения, пожалуйста, обратитесь к нему.   -  person Loai    schedule 28.12.2016
comment
Я подозреваю, что происходит то, что сгенерированные классы добавили некоторые свойства навигации, которые уже исходят из базового класса (IdentityUser). Возможно, вам придется закомментировать некоторые из этих свойств.   -  person Steve Greene    schedule 28.12.2016
comment
Сравните код первого пользовательского класса с первым созданным базой данных.   -  person Steve Greene    schedule 28.12.2016
comment
Я использую Identity 2.0, поэтому у него слишком много свойств больше, чем у Identity 1.0, так или иначе, я добавил в базу данных некоторые свойства, которых нет в Identity 2.0. после этого я получаю эту ошибку Unable to load the specified metadata resource   -  person Loai    schedule 28.12.2016
comment
Вы можете вызывать хранимые процедуры при использовании Code First.   -  person Pawel    schedule 28.12.2016
comment
Вы обновляете свою модель после внесения изменений? stackoverflow.com/questions/14648212 /   -  person Steve Greene    schedule 28.12.2016
comment
@Pawel на данный момент я добавил пользовательскую хранимую процедуру в базу данных, и я использую EDMX для получения и обработки этой хранимой процедуры, это хороший способ сделать это? для меня, если кто-то может помочь мне преобразовать мой проект в базу данных, это будет лучше. я много пробовал, но я придерживался вопросов ИДЕНТИЧНОСТИ.   -  person Loai    schedule 29.12.2016
comment
@SteveGreene я ничего не менял.   -  person Loai    schedule 29.12.2016