2010-01-13 2 views
4

Помимо быстрого времени разработки (у Visual Studio 2010 бета 2 нет шаблонов T4 для создания объектов сущности POCO, о которых я знаю), есть ли какие-либо преимущества в использовании традиционных объектов EntityObject, которые Entity Framework создает по умолчанию? Если Microsoft поставляет шаблон T4 для создания объектов POCO, я пытаюсь понять, почему кто-то захочет использовать традиционный метод.Entity Framework 4.0: зачем использовать созданные с помощью кода объекты EntityObject над объектами POCO?

ответ

6

Вы задаете два вопроса одновременно, похоже. Код только для модели - первый и EntityObject - тип родителя по сравнению с произвольным родительским типом. Вы получаете поддержку дизайнера с первой моделью, независимо от типа родителя. Помимо поддержки дизайнера, вы также можете использовать предварительно скомпилированные представления с первой моделью. Это может значительно повысить производительность.

Наличие EntityObject в качестве родителя может быть преимуществом по сравнению с так называемыми «POCOs» (обычно это прокси-базы, а не «простые» объекты), поскольку тип выполнения ваших сущностей - это точный тип, который вы ожидаете, а не подтип, генерируемый во время выполнения.

Кроме того, в отличие от других ORMs, которые имеют минимальное нет поддержки LINQ, то Entity Framework имеет богатую поддержку LINQ, что позволяет вам project на реального типов POCO. Таким образом, можно создавать по-настоящему упорные презентации, не заботясь о том, что такое базовый тип ваших сущностей. Вы не зацикливаетесь на том, какой тип выходит из черного ящика ORM.

EntityObject позволяет использовать частные объекты, которые сохраняются в базе данных. Использование типов прокси требует, чтобы эти свойства были, по крайней мере, защищены и должны быть виртуальными. Поэтому EntityObject может обеспечить лучшую инкапсуляцию.

Я не пытаюсь предложить, кстати, что нет преимуществ при использовании прокси; Я просто пытаюсь ответить на ваш вопрос о преимуществах EntityObject.

0

Я думаю, что единственное преимущество - поддержка дизайнеров. Невозможно найти другие преимущества при использовании объектов non-poco.

+0

Хорошая точка. Я хотел бы думать, что если создаются шаблоны, Microsoft может добавить возможность изменять объекты POCO у дизайнера. – senfo

 Смежные вопросы

  • Нет связанных вопросов^_^