Я новичок в EF и до сих пор работаю над кривой обучения.Использование письменного класса в качестве базового типа для объекта EF6
У меня есть 2 таблицы ScheduledEvent и RealizedEvent. Очевидно, что это оба события со сходными свойствами, но у них также есть некоторые разные свойства. Планируемое событие генерирует реализованную запись события, но запланированное событие не должно быть запланировано. Для простоты я пошел с двумя таблицами в базе данных.
В C# я хотел бы иметь базовый класс событий, который наследует обе эти объекты.
Я попытался
public class BaseEvent
{
public virtual int ID { get; set; }
... /*All overlapping properties*/
}
public partial class ScheduledEvent : BaseEvent
{ ... }
Это генерирует предупреждения, потому что EF автоматически генерируемые классы не override
методы и свойства.
Я могу видеть в .edmx окне, где я могу указать Base Type
для сущностей, но это не позволяет мне выбрать написанный пользователем класс. Думаю, я мог бы определить таблицу с перекрывающимися полями, указать, что в Base Type
, и никогда не помещать данные в нее, но это кажется глупым.
Есть ли лучший способ сделать это?
Спасибо за ответ. Это действительно помогло мне понять больше и подтолкнуть меня к кривой. Я закончил использование интерфейса, поэтому мне не пришлось реорганизовывать базу данных. Насколько я понимаю, это не лучшее решение для ремонтопригодности. – DomPazz