EF в реальной жизни, я хочу верить (У кого-нибудь есть хорошие указатели на нетривиальные примеры EF 1.0 (3.5) или 4.0?)
Недавно я обнаружил, что я становлюсь более негативным в отношении EF и не могу не задаваться вопросом, является ли реальная проблема моим собственным знанием по этому вопросу. Я видел много простых/искусственных примеров использования EF, особенно в сочетании с MVC, но я еще не нашел реальных примеров использования EF и использования всех функций. Кроме того, все попытки, которые я сделал до сих пор использовать EF, по-видимому, были устранены либо дефицитом в дизайнере VS2008 (например, поддержка полей или столбцов, генерируемых сервером), либо необходимостью предоставлять дополнительные коды для поддержки обновления данные возвращаются к источнику (где я ожидал, что это будет поддерживаться EF).
Чтобы я мог действительно изучить это и принять более обоснованное решение, может ли кто-нибудь указать мне на некоторые примеры использования EF с ASP.NET, например, в реальной ситуации - например, получение некоторых связанных данных из основного источника, обновляя эти данные, а затем сохраняя эти изменения в источнике. В любом примере, который вы можете предоставить, я хотел бы видеть только изменения, сделанные пользователем, которые отправляются обратно на источник, а не просто перезаписывать текущую версию.
Я также хотел бы увидеть некоторые примеры возможности использования EF в ситуации веб-службы/WCF, где снова объект извлекается связанными объектами, и любые сделанные изменения сохраняются обратно в хранилище данных.
Я бы предпочел как можно больше примеров использовать EF 1.0 (3.5), так как это версия, которая в настоящее время доступна для использования в производстве, но мне также было бы интересно, чтобы какие-либо примеры EF 4.0, которые доказывают, что все будет готово лучше.
Я хочу верить, что EF - это путь вперед. Мне особенно нравится идея обращения с базой данных, как если бы это была просто куча связанных объектов (и в прошлом она часто переворачивала мои собственные версии), но кажется, что EF только заходит так далеко. У меня есть несколько новых проектов на горизонте с участием довольно больших баз данных и в настоящее время не может оправдать использование EF, хотя я бы очень хотел.
Ответы
Ответ 1
Хорошие новости (по крайней мере, для EF4). Сегодня Карл Перри опубликовал серию статей в блоге команды ADO.NET, в котором подробно описаны некоторые изменения, которые значительно облегчат жизнь. http://blogs.msdn.com/adonet/archive/2009/06/22/announcing-entity-framework-feature-ctp-1.aspx
Ответ 2
См. http://dataguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28998 для официальной реализации EF v4 Reference (с интерфейсом ASP.NET MVC).
Ответ 3
Я думаю, что это будет некоторое время, прежде чем EF догонит Hibernate.
Ответ 4
Не могу предоставить вам код, но может рассказать вам мой опыт. Недавно попробовал linq to sql в реальном проекте. Это было неплохо, но это не соответствовало дизайну, основанному на доменах (или я просто был слишком глупым, чтобы он выглядел так, как мне хотелось бы).
Пробовал linq для сущностей. Короче - потрачено впустую ~ 2 дня. Я отказался от своей надежды после первых нескольких раз, когда проходил редактирование сопоставлений.
Придерживается NHibernate (потому что он ничего не генерирует). Но все они разочаровываются в поддержке sproc.
Возможно, следующий выпуск будет лучше. На данный момент это кажется неуклюжим для меня.
Ответ 5
Я задал аналогичный вопрос здесь, который относится к ASP.NET MVC. У меня в основном тот же вопрос, который вы делаете в том, что я не видел много "реальных" примеров того, как EF работает с веб-сценарием .NET.
Ответ 6
Я искал информацию о EF сам, и когда был направлен сюда, я нашел большинство ответов здесь, датированных после выпуска EF4 CTP4.
Возможно, кто-то, кто читает мой ответ, скажет, что функции в CTP4 также датируются, поэтому я предлагаю всем, кто ищет реалистичную инфраструктуру сущности для реального, взглянуть на Блог команды ADO.net и проверьте последние новости