Entity Framework подходит для всех приложений, которым было бы полезно иметь уровень ORM. Даниэль Симмонс пост подробно расскажет об этом.
http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx
Entity Framework во многом похож на Linq для SQL, но не привязан к MS SQL Server, как Linq для SQL. Кроме того, EF поддерживает более гибкое отображение между объектами вашего бизнеса / домена и таблицами данных. Linq для SQL поддерживает более однозначное сопоставление, тогда как EF поддерживает возможность сопоставления одного объекта нескольким таблицам или одной таблицы нескольким объектам. У вас есть достойная дизайнерская поддержка в обоих.
В мире открытого исходного кода NHibernate, вероятно, является наиболее продвинутым и во многих отношениях является более зрелым продуктом (он, безусловно, поддерживает более широкий набор функций, в некотором отношении). Но с EF вы получаете полную поддержку MS и тесную интеграцию в набор инструментов Visual Studio и стек .net Framework. EF также был лучшим профессионалом в Linq, чем NH на момент написания.
Для быстрого и грязного приложения я бы, если честно, склонялся к Linq для SQL, если вы можете жить с MS SQL Server и ограничениями отображения.
Для более сложных приложений я бы использовал EF или NHibernate.
Вас может заинтересовать пост доверия, который я дал на EF
http://blog.keithpatton.com/2008/06/24/A+Vote+Of+Confidence+For+The+Entity+Framework.aspx