Каковы преимущества/недостатки каждого метода?
Я знаю, что читал где-то в книге или на этом сайте, почему использование наследования таблиц не подходит для Entity Framework 4.
Например, почему бы не создать одну таблицу, в которой есть entityId, datecreated, datemodified, а затем унаследовать все остальные классы в структуре сущностей? Тогда мои таблицы для всех других объектов не должны иметь эти столбцы. Затем я могу сделать так, чтобы класс человека наследовал этот базовый класс, а затем конкретный человек наследовал человека.
Я не уверен в преимуществах этого, кроме написания меньшего SQL-скрипта для создания базы данных...
Недостатки, которые я вижу, заключаются в том, что это делает запрос/просмотр данных непосредственно в SQL большой головной болью (вся соответствующая информация разбивается на такое количество таблиц), и я также спросил своего друга, который сказал:
«Самое важное, что бросается мне в глаза, — это то, что я не хотел бы, чтобы моя база данных зависела от текущей структуры наследования моего приложения. Если бы по какой-то причине я захотел изменить дизайн своего приложения в с точки зрения наследования, это не имеет значения, потому что мои данные не будут зависеть от моего текущего дизайна системы. Я думаю о хранении данных просто как о хранилище. База данных нормализована в соответствии с правильной структурой базы данных, но наследование является программным выбор разработки приложения, а не хранения данных. Одно это помешало бы мне его использовать. Наследование - очень сложная вещь, когда дело доходит до разработки приложения. Гораздо проще изменить код приложения, чем изменить и перенести базу данных данные, когда большинство менее опытных разработчиков подходят к проблеме, они подходят к ней с помощью наследования. Я тоже так делал, когда впервые начал разрабатывать. Логически это имеет смысл. Однако после долгой разработки вы узнаете, что делегирование на самом деле лучший путь (сервисы, вызывающие сервисы в случае SOA), и что одноцелевые сервисы обеспечивают гораздо больше повторного использования, чем наследование». Цитата>Что также имеет смысл для меня.
So
1) В общем, каковы плюсы и минусы наследования по сравнению с расширением
2) В моем конкретном примере выше, что было бы более подходящим?
3) Если мой пример дерьмовый для одного или обоих, что такое хороший пример использования наследования и использования расширения?Я использовал оба раньше, но, поскольку я далек от опыта, я все еще не знаю, как справиться со всеми ситуациями.
10 голосов, 8 избранных, более сотни просмотров и никто не может расширить? знак равно