Как убрать ошибку при создании миграции?
Создал таблицу Users
и Basket
. Таблицы связаны по PK(UserId)
и FK, также пытаюсь создать авторизацию для пользователей используя identityUser
и в классе контекста IdentityDbContext<Users>
. Но при создании миграции появляется ошибка со следующим тестом
Unable to create a 'DbContext' of type ''. The exception 'The entity type 'IdentityUserLogin' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'. For more information on keyless entity types, see ссылка' was thrown while attempting to create an instance. For the different patterns supported at design time, see ссылка**
Пишу на asp net core mvc, entity framework
Напишите пожалуйста, в чем может быть проблема
Ответы (2 шт):
Обратите внимание на модель - если у вас там есть свойство с именем Id
с целым типом или Guid
, то Entity Framework сам определяет, что это основной ключ.
Иначе необходимо явно указать, какое свойство является основным ключом, отметив свойство атрибутом Key
, или указав для класса модели атрибут PrimaryKey
, либо сконфигурировать в методе OnModelCreating DbContext
.
https://learn.microsoft.com/en-us/ef/core/modeling/keys?tabs=data-annotations
Возможно у вас такая же проблема как здесь: https://stackoverflow.com/a/34786782/11639078
Т.е. вы наследовали свой контекст от IdentityDbContext
, но забыли в OnModelCreating
добавить строчку:
base.OnModelCreating(modelBuilder);