Как исправить «Тип сущности требует определения первичного ключа».ошибка в ASP.Net Core - PullRequest
0 голосов
/ 21 апреля 2019

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

Я попытался использовать традиционное именование 'Id' и атрибуты [Key].

Это одна из моих моделей.

public class Band
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id;
    public Institution Institution;
    public BandName BandName;
}

И код для контекста:

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<Band> bands { get; set; }
}
PM> add-migration migration_1
Output: The entity type 'Band' requires a primary key to be defined.

1 Ответ

1 голос
/ 21 апреля 2019

Вам нужно добавить геттер и сеттер к своему идентификатору.

Ваш класс должен выглядеть следующим образом:

public class Band
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id { get; set; }
    public Institution Institution { get; set; }
    public BandName BandName { get; set; }
}

В ядре EF должен быть установлен сеттер, когда он читает данные из базы данныхи заполните свой набор данных.Также подумайте о том, чтобы добавить методы получения и установки для других свойств класса (как я добавил в вашем примере).

Примечание: частный установщик также будет работать public long Id { get; private set; }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...