Я бы сказал, что Entity Framework от Microsoft является как преимуществом, так и недостатком.Вы получаете фреймворк прямо из того же источника, что и сам .NET.Плохая новость заключается в том, что Microsoft часто устаревает в своей собственной кодовой базе без учета обратной совместимости.
NHibernate не принадлежит Microsoft, и нет никакого другого стандарта, кроме того, что, как говорят разработчики Hibernate и NHibernate, относятся к их коду.Хорошей новостью является то, что они, как правило, обращали внимание на обратную совместимость.Существует большая база пользователей, потому что Hibernate существует уже некоторое время.
Одна из особенностей, которые мне больше всего нравятся в Spring, заключается в том, что они не принимают такие решения от вас.Spring имеет собственные функции JDBC, но поддерживает Hibernate, TopLink, JDO, iBatis и JPA.Вы также можете свободно вводить свои собственные классы, если решите пойти другим путем (например, NoSQL).Почему ваш выбор должен быть продиктован рамочным выбором?Это очень няня: «Мы - Microsoft; мы знаем, что лучше для вас, чем вы».