Итак, я думаю о создании простого компонента, который я буду использовать в различных проектах. Компонент предоставляет класс (скажем, автомобиль), который я использую во многих проектах. Компонент также имеет такие вещи, как основные виды для перечисления различных автомобилей и сохраняет свои собственные данные в базе данных через Entity Framework.Расширение компонента с дополнительными свойствами
Теперь мой вопрос: как мне расширить этот компонент автомобиля между проектами? Большинство автомобилей в разных проектах имеют очень похожие свойства, но все они имеют некоторые дополнительные. Итак, как мне добавить эту дополнительную функциональность (или просто свойства) к компоненту таким образом, чтобы я мог просто обновить DLL, содержащую компонент, если я позже улучшу базовый компонент? И как мне сделать компонент «осведомленным» о дополнительных столбцах в его db?
До сих пор я рассматривал две разные альтернативы, но мне тоже не нравятся. Сначала нужно было просто взять последнюю версию компонента, добавить материал, который нужен текущему проекту, и использовать его. Но это, очевидно, громоздко, если я хочу обновить базовый компонент. Вторая альтернатива, о которой я думал, будет заключаться в том, что основной компонент имеет ссылку на таблицу расширения, которая затем может быть определена далее в проекте настройки. Или что-то вдоль этих линий.
Как вы, наверное, можете сказать, я совершенно новый для всего этого. Так что все и всякие советы очень ценятся!
Вот для чего наследование. Поместите класс в отдельную сборку, общую для всех проектов, и наследуйте от этого класса в других проектах, добавив новые свойства по мере необходимости. – Groo
Но как наследование влияет на ссылку на структуру сущности -model? Есть ли способ автоматического обновления модели EF с новыми свойствами, введенными в унаследованный класс? – bobblez
Что вы имеете в виду: И как мне сделать компонент «осведомленным» о дополнительных столбцах в его db? –