Одна из немногих действительных жалоб, которые я слышу о EF4 по отношению к NHibernate, заключается в том, что EF4 плохо справляется с лениво загруженными коллекциями. Например, в лениво загруженной коллекции, если я скажу:
if (MyAccount.Orders.Count() > 0) ;
EF вытащит всю коллекцию (если это еще не так), в то время как NH будет достаточно умным, чтобы выпустить select count(*)
У NH также есть хорошая выборка пакетов, чтобы помочь с проблемой select n + 1
. Насколько я понимаю, ближайший EF4 может прийти к этому с помощью метода Include.
Может ли команда EF пропустить какие-либо указания, что это будет исправлено в следующей итерации? Я знаю, что они усердно работали на POCO, но это, кажется, что это будет популярным исправить.