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

Дамп Linq-To-Sql теперь, когда выпущена Entity Framework 4.0?

Относительная простота Linq-To-Sql, а также вся критика, выровненная в версии 1 Entity Framework (особенно, вотум недоверия) убедил меня пойти с Linq-To-Sql "пока". Теперь, когда EF 4.0 не работает, мне интересно, пришло ли время для перехода на него.

Вопросы:

  • Каковы плюсы и минусы EF 4.0 относительно Linq-To-Sql?
  • Готово ли EF 4.0 в прайм-тайм?
  • Настало время переключиться?
4b9b3361

Ответ 1

Ну, бесконечные дебаты: -)

Да, я твердо верю, что EF4 определенно готов к прайм-тайм - Microsoft сделала замечательную работу по устранению почти всех неприятностей и проблем с выпуском EF версии 1.0.

Он готов к прайм-тайму - если вам нужны все его функции.

Linq-to-SQL - довольно простой, без излишеств, без излишеств OR-mapper - он сопоставляет одну таблицу базы данных с одним объектом CLR - и об этом. Очень простой, очень прямой, но довольно тонкий слой поверх SQL Server.

EF4, с другой стороны, намного больше

  • модель концептуальных данных в вашем пространстве объектов
  • модель данных хранилища на уровне вашей базы данных
  • слой отображения между двумя
  • независимым от базы данных

Итак, если вам действительно нужна поддержка нескольких баз данных (а не только SQL Server) или вам действительно нужно иметь возможность преобразовать структуру базы данных в совершенно другую объектную модель - EF4 - отличное место для начала.

Если у вас есть простое и простое приложение для малого и среднего размера, которое должно просто легко и быстро отображать таблицы 1:1 на объекты, то я не думаю, что EF4 приближается к простоте и производительности к Linq-to-SQL.

EF4 велик - и если вам нужна его сила - идите с ним!

Но если ваши требования намного меньше, это может быть просто излишним - продолжайте использовать Linq-to-SQL (я буду) и буду счастлив с ним. Я не вижу веских оснований для отказа Linq-to-SQL - он все еще полностью доступен в .NET 4, был благословлен некоторыми исправлениями и улучшениями ошибок ровно, и это будет вокруг, по крайней мере, еще несколько лет.

Ответ 2

@marc_s, @DanM:

Пожалуйста, не рассматривайте этот пост как рекламу:) Мы просто хотим узнать мнение продвинутых пользователей Linq to Sql.

Мы внедрили следующие улучшения в LinqConnect (Linq to Sql Server, Oracle, MySql, PostgreSql, SQLite):

- Complex Type  
- Many to Many  
- Batch update operations  
- Recursive support in DataLoad options  
- Query level preload (like Include in EF)  
- TPT support (in LinqConnect 2.0)  

Мы также планируем добавить поддержку кэша второго уровня.

Являются ли эти улучшения ценными для вас?