У меня есть общий тип, который я хотел бы представлять в базе данных. Мне нужно знать, если это возможно с первым кодом или плохим дизайном. (Укажите, пожалуйста, источники ваших рассуждений).Как определить свойство навигации EF5 для нескольких типов
Вот макет:
public class A
{
public Guid Id;
public Guid ParentId; // Points to either B or C
public string Foo;
}
public class B
{
public Guid Id;
public virtual ICollection<A> ManyA { get; set; }
// Other fields
}
public class C
{
public Guid Id;
public virtual ICollection<A> ManyA { get; set; }
// Other fields
}
мне удалось GUID первичные ключи с помощью [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
аннотацию, который я считаю, что это стало возможным.
Цель состоит в том, чтобы держать A
-table простым; Я хотел бы не иметь B_Id
C_Id
и столбцов, как я думаю, что они не нужны, и может быть D
типа в будущем, что имеет много A
так же, как и B
C
. Кроме того, этот сценарий используется для нескольких других отношений.
Я думаю, что дух проблемы очевиден, однако члены класса, связанные с EF, просто для иллюстрации. Если им нужно измениться, пусть будет так.
(Прошу прощения за надуманный пример, однако разоблачение истинной природы этого, ИМО, не уточняет проблему).
Кроме того, я пробовал искать часы! Я не знаю правильной номенклатуры, чтобы найти подходящий ответ. Я довольно новичок в базах данных и EF в целом.
Примечание: использование Guid в этом случае является спорным. –