У меня есть две сущности, которые используют один и тот же класс для представления имени:
Участник
class Participant
{
public PersonName Name { get; set; }
}
Судья
class Judge
{
public PersonName Name { get; set; }
}
PersonName
class PersonName
{
public string First { get; set; }
public string Last { get; set; }
public string Full { get; set; }
}
В таблице для Participant
значение Last
является обязательным (ненулевым) столбцом.В таблице для Judge
используется только значение Full
(и необязательно).Моя проблема в том, что EF применяет IsRequired()
из моего сопоставления Участника к Judge
экземпляру PersonName
и, таким образом, происходит сбой, когда для Judge
Entity предоставляется только значение Full
.
Отображение участников
Property(t => t.Name.Last)
.IsRequired();
Отображение судей
Property(t => t.Name.Full)
.HasMaxLength(100);
Ошибка проверки сущности
Поле Judge.Name.Last является обязательным.
Есть ли способ избежать этого конфликта сопоставления, кроме создания отдельных PersonName
-подобных классов для каждой ситуации сопоставления?