Кажется, вы задаете два вопроса одновременно. Только код по сравнению с моделью-первым и EntityObject
родительским типом против произвольного родительского типа. Вы получаете поддержку дизайнера с моделью-первым, независимо от родительского типа. Помимо поддержки дизайнера, вы также можете использовать предварительно скомпилированные представления с моделью в первую очередь. Это может существенно помочь производительности.
Наличие EntityObject
в качестве родителя может быть преимуществом над так называемыми «POCO» (которые обычно являются прокси-базами, а не «простыми» объектами), потому что тип времени выполнения ваших сущностей - это именно тот тип, который вы ожидаете, скорее чем сгенерированный во время выполнения подтип.
Кроме того, в отличие от других ORM, в которых поддержка LINQ минимальна или отсутствует, Entity Framework имеет расширенную поддержку LINQ, что позволяет проецировать на реальные типы POCO. Следовательно, можно создавать действительно невежественные представления о постоянстве, не заботясь о том, каков базовый тип ваших сущностей. Вы не застряли с тем, какой тип выходит из черного ящика ORM.
EntityObject
допускает частные свойства, которые сохраняются в базе данных. Использование типов прокси требует, чтобы эти свойства были как минимум защищены и были виртуальными. Следовательно, EntityObject
может обеспечить лучшую инкапсуляцию.
Кстати, я не пытаюсь предположить, что использование прокси не дает никаких преимуществ; Я просто пытаюсь ответить на ваш вопрос о преимуществах EntityObject
.