Привет. Я пытаюсь отделить от него зависящую от структуры сущности часть класса модели, чтобы использовать базовый класс в любом другом месте или проекте. У меня есть базовый класс, и затем я наследую его для создания необходимого класса инфраструктуры объектов путем переопределения некоторых свойств и применения к ним аннотаций данных, но 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, это дает мне ошибки проверки, что у пользователя и адреса не определен ключ. Я не знаю, почему он ищет ключевые атрибуты в базовом классе, в то время как я применил ключевой атрибут в производных классах к переопределенным свойствам. Пожалуйста, помогите, заранее спасибо.