Ответ 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, был благословлен некоторыми исправлениями и улучшениями ошибок ровно, и это будет вокруг, по крайней мере, еще несколько лет.