Entity Framework v4 - в чем разница между POCO и Code-Only? - PullRequest
1 голос
/ 28 ноября 2009

У меня такое впечатление, что

  • EF с POCO: позволяет сопоставить ваши собственные POCO с объектами в модели (.edmx).
  • EF только для кода: нет edmx / конструктор моделей (т. Е. Метаданные CSDL / SSDL / MSL (вместе EDMX)). Все еще POCO, но отображения, отношения, навигация и т. Д. Все вручную закодированы (следовательно, только код, описание).

Если это описание этих двух понятий (более или менее) является правильным, почему кто-то должен делать только код, а не EF с POCO?

Оба делают POCO, но у 2-го есть дополнительное бремя необходимости также делать картографию вручную?

Ответы [ 5 ]

3 голосов
/ 29 ноября 2009

Единственное, что я хотел бы добавить к ответу jfar, это то, что с Code-Only у вас нет для создания отображений.

Отображения могут выводиться по соглашению большую часть времени.

3 голосов
/ 29 ноября 2009
  1. Код полезен только в том случае, если вы хотите написать сопоставление вручную, без необходимости пробираться через XML. Кроме того, дизайнер edmx становится громоздким после 50 или около того моделей, это просто бремя, чтобы использовать этот способ.

Когда что-то идет не так в вашем картографическом XML, это действительно PITA, чтобы покопаться в xml и внести необходимые исправления. Также дизайнер ломается, если вы начинаете вручную редактировать xml в определенных сценариях.

Теперь я не знаю деталей, но дизайнер в EF1 не поддерживал все доступные параметры отображения. У дизайнера EF4 есть некоторые улучшения (на ум приходят односторонние отношения), но я не уверен, что он имеет паритет функций с ручными отображениями.

  1. Да.
1 голос
/ 16 декабря 2010

Важно знать о предварительной генерации представления. Я не слышал, чтобы у Microsoft было намерение обеспечить предварительную генерацию только для кода. Если кто-то знает другое, пожалуйста, напишите.

Я использовал только код для 400 таблиц в рамках исследования о том, стоит ли использовать EF4 или NHibernate, и существует 80-секундная начальная задержка для создания представления - точно так же, как при использовании дизайнера, но с дизайнером возможна предварительная генерация вида, что снизило задержку до 10 секунд. Если вы недовольны разделением своей модели и у вас более 75 таблиц, не используйте код только для кода.

0 голосов
/ 11 июля 2010

Что еще не упомянуто, так это то, что вы получаете полную проверку синтаксиса во время компиляции при использовании только кода. Если вы используете визуальный дизайнер с EDMX, вы получаете некоторую проверку во время компиляции, но она ограничена. Для более крупных моделей EDMX становится крайне неудобным, и запись CSDL, SSDL и MSL вручную - единственный достойный способ управления очень большими моделями с помощью сопоставлений XML. Вы не получаете никакой проверки во время компиляции, если вы вручную управляете своими отображениями.

С Code Only вы получаете возможность полной проверки времени компиляции для моделей любого размера, даже если у вас есть сотни или тысячи объектов, с которыми вам нужно работать. Это также приводит к меньшему «беспорядку», поскольку ваш конечный продукт - это все скомпилированные сборки, а не смесь сборок и различные типы XML-файлов.

0 голосов
/ 30 ноября 2009

Я не думаю, что Code-Only в настоящее время позволяет вам создавать новые представления, поэтому производительность может снизиться. Однако это может измениться до выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...