Обновления Entity Framework 4.1 для моделей TPT и TPCT?

В последний раз я пробовал Entity Framework, когда он был версии 4.0. Мои эксперименты с ним, подтвержденные некоторыми сообщениями на форумах MSDN и в других местах, показали, что модели TPT (таблица на тип) и TPCT (таблица на конкретный тип) для сопоставления базы данных с ООП очень плохо поддерживаются, и действительно неполный. Хуже всего то, что SQL, сгенерированный для запросов TPT/TPCT, был полным спагетти и крайне неэффективен до такой степени, что для любой реалистичной иерархии типов он был непригоден для использования.

Мой вопрос: есть ли какие-либо изменения в обновлении EF 4.1? Конкретно:

  • Есть ли в настоящее время надлежащая поддержка дизайнерами подходов TPT и TPCT?

  • Является ли SQL, сгенерированный для запросов/обновлений TPT/TPCT, достаточно эффективным?

  • Любая другая информация по теме этих моделей.


person Noldorin    schedule 29.05.2011    source источник


Ответы (1)


Ответ - нет. EF 4.1 состоит из двух функций:

  • API Дбконтекста
  • Первая поддержка кода

Code first support вообще не использует конструктор — сопоставление выполняется полностью в коде и отражает функциональность, предоставляемую дизайнером. DbContext API — это новый модный способ работы с EF. Это как-то упрощено, поэтому использование лучше, но в то же время отсутствует некоторая функциональность из оригинального API ObjectContext.

Что вас больше всего заинтересует, так это тот факт, что API DbContext является просто оболочкой API ObjectContext. Больше ничего. В основной функциональности EF нет абсолютно никаких изменений, потому что основная сборка System.Data.Entity.dll не изменилась. Вам по-прежнему нужна эта сборка при работе с EF 4.1 + вам нужна новая сборка EntityFramework.dll с указанными новыми функциями. Это означает:

  • Дизайнер все тот же. Единственная новая функция — шаблон DbContext Generator T4.
  • Сгенерированный SQL точно такой же
person Ladislav Mrnka    schedule 29.05.2011
comment
Спасибо за ответ. Это интересно, но и разочаровывает, конечно. Знаете ли вы, есть ли какие-либо планы по исправлению генерации SQL хотя бы для TPT/TPCT? - person Noldorin; 30.05.2011
comment
Последняя статья, в которой обсуждаются эти проблемы, датирована августом 2010 г.: blogs.msdn.com/b/adonet/archive/2010/08/17/ Если вы проверяете комментарии, вы увидите, что люди не были удовлетворены представленными улучшениями, поэтому я полагаю, что в следующей основной версии будут некоторые изменения, но пока никаких изменений не представлено. - person Ladislav Mrnka; 30.05.2011
comment
Спасибо Ладислав. Это довольно полно отвечает на мои вопросы. :-) - person Noldorin; 30.05.2011