Кто-нибудь еще сожалеет об использовании Entity Framework? - PullRequest
20 голосов
/ 22 мая 2009

У меня есть проект, который реализовал Linq To SQL, и я был очень доволен этим. Некоторое время самой большой проблемой было просто то, что дизайнер глючил.

К сожалению, мой проект теперь требует наследования нескольких таблиц, и Linq to SQL не поддерживает его. Я решил переключиться на Entity Framework, когда узнал, что он поддерживает множественное наследование, и, похоже, это направление Microsoft. Но теперь я начинаю сожалеть об этом решении.

Например, вызывать Load ()? WTF? Если бы я не хотел этих данных, я бы не стал их просить! Выяснение всех анальных причуд Entity Framework становится огромным занавесом для меня.

В любом случае ... есть ли свет в конце туннеля? Когда я закончу, стоит ли использовать EF или я принял ужасное решение?

Наконец, я хотел бы спросить: где Microsoft работала со всей ORM? ActiveRecord от Rails работает прекрасно и просто уже много лет.

Ответы [ 6 ]

11 голосов
/ 22 мая 2009

Вы не одиноки в своей боли. В блоге ADO.NET была серия публикаций , в которых обсуждались улучшения, внесенные в Entity Framework в .NET 4.0. Они кажутся довольно значительными, но достаточно ли их для ваших нужд, судить может только вы.

7 голосов
/ 22 мая 2009

Ну, бета-версия VS2010 доступна ; Вы могли бы раскрутить виртуальную машину и посмотреть, подходит ли вам EF в 4.0 лучше?

Лично я пока придерживался LINQ-to-SQL, но, вероятно, потому, что мне пока не нужны были другие функции.

3 голосов
/ 07 июня 2009

Я абсолютно согласен. Ленивая загрузка - это то, что убило структуру сущностей для меня. Он просто открывает банку с червями с подключением и отключением объектов к экземпляру контекста. Я действительно не хочу беспокоиться об этих вещах. Но потом, кто не работал с недоделанным продуктом от Microsoft раньше :) Я рад, что они собираются исправлять вещи в новом выпуске. До тех пор L2S кажется вашим лучшим выбором.

3 голосов
/ 23 мая 2009

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

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

Если вы заинтересованы в том, чтобы увидеть результаты этих усилий, или хотите предоставить свой вклад, вы можете обратиться к блогу EF Design, здесь: http://blogs.msdn.com/efdesign/

В конце концов, если Microsoft все еще не способна создать гибкий ORM, который подходит для широкого спектра сценариев, всегда есть NHibernate. Я уже давно использую LINQ to SQL, Entity Framework и NHibernate, и из этих трех NHibernate является наиболее дружественной, гибкой и зрелой средой. Это не так уж много для визуальных дизайнеров, но если вы разочарованы ограничениями, причудами, странным поведением и плохой работой EF, NHibernate - отличная альтернатива.

3 голосов
/ 23 мая 2009

Я с нетерпением жду возможности использовать Entity Framework в его версии v4, надеюсь, скоро. Конечно, в нашем случае это сопровождается избавлением от чудовищного ORM, который больше не поддерживается, что хуже, чем чума - так что EF v4 выглядит как посланник бога! : -)

Марк

2 голосов
/ 26 мая 2009

Для продолжения:

Я уже отказался от Entity Framework. Переписывание кода трагически, и я совсем не доволен результатом ... в основном из-за отсутствия поддержки отложенной загрузки.

Я решил вернуться к Linq to SQL и попробовать пока что одиночное наследование таблиц. У нас не очень много дочерних типов, поэтому пока это должно быть уродливым, но приемлемым решением. Когда будут выпущены новая версия VS и Entity Framework, я рассмотрю возможность переключения на этом этапе, поскольку изменения для новой версии выглядят многообещающими.

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