При использовании типов сущностей POCO отложенная загрузка достигается путем создания экземпляров производных типов прокси во время выполнения, а затем переопределения виртуальных свойств для добавления обработчика загрузки. Чтобы обеспечить отложенную загрузку связанных объектов, необходимо объявить методы получения свойств навигации общедоступными, виртуальными (переопределяемыми в Visual Basic) и незапечатанными (NotOverridable в Visual Basic). В приведенном выше коде свойства навигации Category.Products и Product.Category являются виртуальными.
Единственный недостаток, который я вижу, заключается в том, что, как и любой виртуальный метод, они будут работать немного медленнее, чем невиртуальные методы. Скорее всего, вы никогда не сможете обнаружить разницу в производительности.
Вы увидите задержку при первом доступе к этим свойствам, так как отложенная загрузка подразумевает, что первое чтение приведет к запросу БД.
personChris Shainschedule24.08.2011
comment
Спасибо за Ваш ответ. Еще один вопрос, все же рекомендуется, если мне НЕ нужна POCO-поддержка или ленивая загрузка?
- personYoungjae; 24.08.2011
comment
Это, конечно, не должно ничего повредить, но нет, я не думаю, что это было бы необходимо.
- personChris Shain; 24.08.2011