Недавно внедрил в проект Entity Framework 4. Надоело писать все на хранимых процедурах. Конечно, что-то можно и нужно делать на хранимых процедурах, но что-то быстрее и проще можно сделать с помощью ORM. Может встать вопрос, почему не nHibernate? Очень просто. nHibernate велик и всемогущ, но у него нет дизайнера. У нас очень простая бизнес логика, потому все прелести такого ORM нам не нужны. Честно, хватило бы и LINQ to SQL, но остановились на Entity Framework потому что: “а мало ли?”. Начал использовать я дизайнер, и первое с чем столкнулся – дизайнер, генерируя по базе, по связи многие-ко-многим (через таблицу связи) так и связывает сущности в дизайнере связью многие-ко-многим, а мне бы хотелось все-таки оставить промежуточный объект (вроде одно из отличий EF от LINQ to SQL, что есть поддержка связи многие-ко-многим, а мне не нравится). Полазил в интернете и единственное решение, которое нашел, было – добавить в промежуточную таблицу еще какое-нибудь поле, тогда все будет хорошо. Такое решение мне не подходило, и, конечно же, не хотелось мне лезть в XML файлы маппинга и править там все руками.