Caveat emptor, я новичок в Linq To SQL.
Я создаю прототип, чтобы преобразовать существующее приложение для использования Linq To SQL для своей модели (это приложение MVVM). Поскольку приложение существует, я не могу изменить его модель данных.
База данных включает в себя информацию о событиях; это либо рекламные мероприятия, либо призовые. Таким образом, модель данных включает в себя таблицу (Event) с двумя связанными таблицами (AdvertisingEvent и PrizeEvent). В моем старом коде на C # у меня был базовый класс (Event) с двумя подклассами (AdvertisingEvent и PrizeEvent), и я использовал фабричный метод для создания соответствующего варианта.
Этого нельзя сделать в Linq to SQL, он не поддерживает эту стратегию наследования.
То, о чем я думал, это создание интерфейса (IEvent), включающего базовую общую функциональность (например, свойство «Описание», которое реализовано в каждом подклассе). Я подумал, что тогда я добавлю свойство в суперкласс, например SharedStuff, который будет возвращать AdvertisingEvent или PrizeEvent в качестве IEvent . Из WPF я мог бы затем привязаться к MyEvent.SharedStuff.Description.
Имеет ли это смысл? Есть лучший способ сделать это?
Кстати: я бы предпочел не переезжать в Линк в Сущности.