Какие проблемы у вас были с Entity Framework? - PullRequest
5 голосов
/ 20 июля 2009

Мы использовали Entity Framework для двух проектов, в которых было несколько таблиц по 100 штук.

Наш опыт в основном положительный. У нас был большой прирост производительности, по сравнению с использованием Enterprise Library и хранимых процедур.

Однако, когда я предлагаю использовать EF в стеке, я часто получаю отрицательные комментарии.

С отрицательной стороны мы обнаружили, что для определенных функций существует крутая кривая обучения.

Наконец, к вопросу: какие проблемы были у людей с EF, почему они предпочитают другие ORMS?

Ответы [ 4 ]

4 голосов
/ 04 февраля 2010

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

Одна проблема, которая удивила меня, была разница в производительности между двумя стратегиями извлечения данных. Первоначально я полагал, что активная загрузка будет более эффективной, поскольку он будет извлекать данные с помощью одного запроса. В этом случае данные были заказом, и я активно загружал 5-8 связанных таблиц. Во время разработки мы обнаружили, что этот запрос неоправданно медленный. Используя SQL profiler, мы отслеживали трафик и анализировали полученные запросы. Сгенерированный оператор SQL был огромным, и SQL Server, похоже, не очень-то это нравился.

Чтобы обойти эту проблему, я вернулся в режим отложенной загрузки / по требованию, что привело к увеличению количества запросов к серверу, но значительному увеличению производительности. Это было не то, что я изначально ожидал. Мой вывод, который, по-моему, справедлив для всех реализаций доступа к данным, заключается в том, что мне действительно необходимо провести тестирование доступа к данным. Это верно вне зависимости от того, использую ли я ORM или SQL Procs или параметризованный SQL и т. Д.

4 голосов
/ 20 июля 2009

Как и вы, мой опыт работы с EF в основном положительный. Самая большая проблема, с которой я столкнулся, заключается в том, что очень сложные запросы могут долго компилироваться. Визуальный дизайнер также гораздо менее стабилен и имеет меньше возможностей, чем сам фреймворк. Я хотел бы, чтобы фреймворк поместил атрибут GeneratedCode в код, который он генерирует.

1 голос
/ 10 декабря 2010

Я тоже использую Entity Framework и обнаружил следующие недостатки:

  1. Я не могу работать с Oracle, который мне действительно необходим.
  2. Дизайнер моделей для Entity Framework. При обновлении модели из базы данных хранилища часть также восстанавливается. Это очень неудобно.
0 голосов
/ 05 июня 2011

Нет поддержки вместо триггеров в Entity Framework.

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