Подтвердить что ты не робот

Entity Framework 4.0: это достойно сейчас?

Я читал много жалоб на Entity Framework в .NET 3.5 SP1, особенно на его неэффективно созданный SQL. Эти жалобы помешали мне изучить Entity Framework.

Теперь появилась платформа Entity Framework 4.0, которая предоставляет много promises. Интересно, действительно ли это хорошая ОРМ или еще нет? Стоит ли учиться и использовать его в моих проектах .NET вместо традиционных SQL-запросов? Планируете ли вы снова переключиться на EF 4.0?

Спасибо заранее.

4b9b3361

Ответ 1

Вы действительно должны проверить блог Джулии Лерман на EF4, она сразу же восторгается продуктом, но технически правильна. По мне, я могу сказать, что мы уже использовали EF4 в более чем нескольких производственных проектах с хорошими результатами: -)

Ответ 2

Одно слово: ДА!!

Entity Framework 4.0 содержит огромное количество дополнений и улучшений, а также дополнительные шаблоны для POCO и самонаблюдающих объектов, которые определенно готовы к прайм-тайму.

Если вы хотите, вы даже можете зайти так далеко, чтобы определить всю вашу "модель" EF в коде - no *.edmx file вообще - выглядит и чувствует себя подобно Fluent NHibernate. У вас много вариантов с EF4 - и это хорошо, и признак того, что команда ADO.NET действительно слушала сообщество (и очень много работала, чтобы сделать эти вещи намного лучше).

В дополнение к книге и блогу Джули Лерман вы также должны проверить блог ADO.NET EF4 - он содержит очень полезные и полезные советы и подсказки.

Это сообщение в блоге, в частности, может вас заинтересовать:

Ответ 3

Да, EFv4 (в .net 4) находится в совершенно другой лиге, чем EFv1 (в .net 3.5 SP1).

EFv1 имел множество ограничений и иногда генерировал ужасный T-SQL.

TSQL, созданный EFv4, в порядке, насколько я знаю; иногда он имеет немного больше гнездования с подзапросами, чем нужно, но это косметическая вещь, которая влияет только на читаемость человека...

Ответ 4

Если вам нужна ORM, и вы ограничены .NET Framework, тогда да EF v4.0 является серьезным обновлением и намного лучше, чем EF v1. Но, с другой стороны, это еще только вторая версия, и многие проблемы еще не решены. Также упомянутая первая разработка кода (no.edmx) - это только версия CTP, которая не готова к использованию. Но я считаю, что вы можете успешно использовать EF в любом виде проекта, и вы все равно получите дополнительную добавленную стоимость в более быстрой разработке.

Среди ограничений, о которых вы можете подумать:

  • Ограниченные сопоставления
  • Худший опыт работы с EDMX в общей среде
  • Плохой опыт в отключенных сценариях
  • Нет встроенной трассировки
  • Ограниченная расширяемость, без крючков
  • и др.

Ответ 5

EF4 по-прежнему не хватает основных компонентов. Однако почему вы ожидаете идеального продукта? Это никогда не будет вокруг. EF4 весьма полезен, даже если он имеет несколько грубых ребер.

Вы можете использовать SQL и EF4 бок о бок, поэтому, если вы столкнулись с сценарием, когда EF4 делает неэффективный код или просто ничего не поддерживает, вы всегда можете использовать простой старый ADO.NET. Сущность framework фактически поддерживает создание объектов из DataRow s, поэтому вы можете довольно легко подключить результаты такого исключительного SQL-запроса обратно к нормальному потоку программы. Там, где EF4 блистает, в более нормальных сценариях, в которых вступают в силу требования к безопасности типов и intellisense.

Использование инфраструктуры сущности влечет за собой небольшую часть кривой обучения, а чем раньше вы начинаете, тем лучше. Несмотря на то, что EF4 еще не совсем там (по-моему, так или иначе), я бы сказал: пойдите для этого! Используйте его для нескольких небольших углов вашего приложения, чтобы почувствовать он.

Вы можете создать соединение с сущностью по существующей (нераскрытой) SqlConnection, которая открывается EntityConnection, а с помощью TransactionScope затем разрешить вам использовать одну нераспределенную транзакцию между EF и ADO. В совокупности это означает, что вы можете использовать небольшие биты EF в качестве замещающих замен для обычных запросов ADO, транзакций и всего, как часть одного и того же соединения (т.е. Без дополнительных накладных расходов с точки зрения сервера).

Ответ 6

Нет. EF не поддерживает Системную концептуальную целостность (ни n-уровневые архитектуры), поэтому у вас не будет никакой архитектуры вообще, кроме множества компонентов с хаотическими ссылками, неправильной платформы с неправильными механизмами связи.

Ответ 7

Нет пока

Учитывая ограничения и предыдущие эксперименты с EF в 3.5 sp1, я бы предложил не рассматривать EF до тех пор, пока он не стабилизируется. Может быть, по версии 5, я должен полагаться. Было бы лучше, если вы продолжите свой проект с LinQ до SQL.

Счастливое программирование...