В новом проекте я хотел бы использовать функцию «Сначала код» Entity Framework для настройки моего хранилища данных.
В моем проекте у меня может быть несколько типов людей (держатель билета, путешественник, агент по продажам и т. Д.), Но мне нужна только проверка на держателе билета. Поэтому я создал базовый класс типа «Person», который не имеет атрибутов проверки, и унаследованный класс типа «TicketHolder», который содержит проверку для имени и т. Д.).
Моя проблема в том, что EF генерирует исключения:
Одна или несколько ошибок проверки были обнаружены во время генерации модели:
System.Data.Edm.EdmProperty: Name: каждое имя свойства в типе должно быть уникальным. Имя свойства 'Title' уже определено.
Похоже, EF не распознает, что свойства "TicketHolder" переопределяют свойства "Person".
Как мне обойти это?
Базовый класс:
public abstract class Person
{
public int Id { get; set; }
public virtual string Title { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
Производный класс для TicketHolder:
public class TicketHolder : Person
{
[Required(ErrorMessage = "Title Required")]
public override string Title { get; set; }
[Required(ErrorMessage = "First Name Required")]
public override string FirstName { get; set; }
[Required(ErrorMessage = "Last Name Required")]
public override string LastName { get; set; }
}