Ошибки валидации при отделении базового класса Entity Framework от базового класса - PullRequest
0 голосов
/ 03 апреля 2020

Привет. Я пытаюсь отделить от него зависящую от структуры сущности часть класса модели, чтобы использовать базовый класс в любом другом месте или проекте. У меня есть базовый класс, и затем я наследую его для создания необходимого класса инфраструктуры объектов путем переопределения некоторых свойств и применения к ним аннотаций данных, но EF все еще нужны аннотации данных в базовом классе. Мой код ниже

Вот мой класс пользователя

namespace SeperatingEfPOC
{
    public class User
    {
        public virtual string Name { get; set; }

        public virtual ICollection<Address> Addresses { get; set; }
    }

}

Вот соответствующий подкласс EFUser класса User для EF, использующий пространство имен SeperatingEfPO C

{
    public class EfUser : User
    {
        [Key]
        [MaxLength(50)]
        public override string Name { get; set; }
        public override ICollection<Address> Addresses { get; set; }
    }
}

Аналогично Вот класс базовых адресов

namespace SeperatingEfPOC
{
    public class Address
    {

        public virtual string Line { get; set; }

        public virtual User User { get; set; }
    }
}

Вот соответствующий подкласс EFAddress класса адресов для использования EF

namespace SeperatingEfPOC
{
    public class EfAddress : Address
    {
        [Key]
        public override string Line { get; set; }
        public override User User { get; set; }
    }
}

Пространство имен моего класса DbContext SeperatingEfPO C

{
    public class EfDbContext : DbContext
    {
        public DbSet<EfUser> Users{ get; set; }

        public DbSet<EfAddress> Addresses { get; set; }
    }
}

Но когда я создаю объект EfDbContext и пытаюсь добавить EfUser или EfAddress, это дает мне ошибки проверки, что у пользователя и адреса не определен ключ. Я не знаю, почему он ищет ключевые атрибуты в базовом классе, в то время как я применил ключевой атрибут в производных классах к переопределенным свойствам. Пожалуйста, помогите, заранее спасибо.

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