Мысли о Entity Framework
Мне было интересно, что люди думают о решении поддержать Entity Framework через LINQ-to-SQL? У меня есть приложение, которое я разрабатываю изначально в LINQ-to-SQL. Я нашел это идеальное решение для нашего приложения.
Пытаясь портировать на Entity Framework, я был удивлен, насколько это было грубо. ИМХО, даже близко не быть готовым к прайм-тайм. Никакой ленивой загрузки, никаких POCO, ужасной зависимости от наследования. Я обнаружил, что это в значительной степени непригодно для моего случая, и вместо этого решил придерживаться LINQ-to-SQL, пока этот Entity Framework не станет более отточенным.
У кого-нибудь еще есть подобный опыт?
5 ответов
Это в значительной степени мой взгляд. Смотрите мой предыдущий ответ здесь. Этот другой вопрос не был конкретно о проблемах в EF, но да: у него довольно много глюков. Например (в дополнение к вашим существующим опциям):
- нет поддержки
Expression.Invoke
(повторное использование деревьев выражений для формирования более сложного выражения) - нет поддержки таблиц-UDF, которые можно использовать для создания четко определенных, вызываемых методов в базе данных, которые по-прежнему можно компоновать с помощью sort/skip/take и т. д.
LINQ-to-SQL отлично справляется с обеими задачами...
Я думаю, что это зависит от платформы приложения. Когда моя команда занялась созданием нового приложения ASP.net, мы хотели использовать EF... но, немного поиграв с ним, мы выбрали Linq-To-SQL. В веб-среде управлять текстом данных L2S было намного проще. Кроме того, нам понравилось, что сущности L2S предоставляют исходное поле Id (например, EmployeeTypeId), в отличие от EF, в котором отображается только дочерняя сущность. В веб-среде, часто вам действительно не нужна эта дополнительная информация, идентификатор достаточно, потому что это ссылка на выпадающий список, который уже был загружен (и, вероятно, кэширован).
L2S более зрел для того, для чего он создан.
И я все еще буду рассматривать EF как бета-версию.
Есть много дискуссий вокруг EF, вы можете найти много больше в смежных вопросах.
Согласен. В Entity Framework v1 (версии.net 3.5 SP1) слишком много ошибок и недостатков дизайна, чтобы его можно было использовать в реальных разработках. EFv4 выглядит более перспективным, хотя...
Я слышал, что L2S быстро идет по пути додо. Есть немного болтовни о переходе на opensource - но группа ADO.NET в Microsoft планирует приложить все усилия к EF...
Печально также, потому что я нахожу, что с Linq2SQL чрезвычайно легко работать, и мысль о переносе всего моего кода делает меня немного больным.