Каковы преимущества/недостатки каждого метода?Entity Framework 4, наследующий и расширяющий?
Я знаю, что где-то читал в любой книге или на сайте, почему использование наследования таблицы дерьмовый для Entity Framework 4.
Например, почему бы не сделать один стол, который имеет EntityId, datecreated, datemodified а затем унаследовать каждый другой класс в рамках сущности? Тогда мои таблицы для всех других объектов не обязательно должны иметь эти столбцы. Тогда у меня может быть класс человека, наследующий этот базовый класс, а затем определенный человек наследует человека.
Я не уверен в преимуществах этого, хотя другие, чем писать меньший SQL скрипт для создания базы данных ...
Недостатков, которые я вижу в том, что он делает запрос/просмотр данных непосредственно в SQL большой боли в попке (вся соответствующая информация разбита на столько таблиц), и я также спросил у моего друга, который сказал:
«Самое большое, что торчит для меня, это тот факт, что я не хочу, чтобы моя база данных полагайтесь на текущую структуру наследования моего приложения. Если по какой-то причине я хотел изменить дизайн своего приложения с точки зрения наследования, это не имело бы значения, потому что мои данные не будут полагаться на мой текущий дизайн системы. Я считаю, что хранение данных просто так - хранилище. база данных нормализуется в соответствии с надлежащим дизайном базы данных, но наследование представляет собой программный выбор разработки приложений, а не хранения данных. только это помешало бы мне использовать его. Наследование очень сложно делать правильно, когда дело доходит до разработки приложения. гораздо проще изменить код приложения, чем изменять и переносить данные базы данных , когда наиболее менее опытные разработчики подходят к проблеме, к которой они подходят, с наследованием. я тоже, когда я начал развиваться. это логично имеет смысл. однако, как только развивается в течение длительного времени, вы узнаете, что делегация действительно лучший способ пойти (услуги вызова служб в случае СОА) и что услуги одноцелевых обеспечивают намного больше повторное использование, чем наследование.»
Какой также имеет смысл для меня.
Так
1) в общем, какие плюсы/минусы наследования против расширения
2) в моем конкретном примере, приведенном выше, что было бы более уместно?
3) Если мой пример дрянной для одного или обоих, то что является хорошим примером для использования наследования и для использования расширения?
Я использовал оба раньше, но поскольку я далек от приправы, я до сих пор не уверен, как справляться со всеми ситуациями.
10 голосов, 8 фаворитов, более сотни просмотров, и никто не может расширить? = (.
Спасибо за ответ BP, любой шанс, который вы могли бы расширить на этом больше? Или нет других плюсов и минусов? Что было бы хорошим примером для использования наследования? – SventoryMang
На самом деле .OfType фильтруется на стороне SQL, IIRC –