Они в основном предназначены для обеспечения отложенной загрузки, но могут обеспечить некоторое улучшение производительности для постоянных изменений, хотя, честно говоря, я бы сказал, что это очень ситуативно, чтобы представить что-нибудь заметное.
Я бы с осторожностью отнесся к необходимости сериализации объектов.Например, если необходимо вернуть сущности из контроллера / API, я бы рекомендовал определить модели представления POCO или DTO, которые отражают данные, необходимые потребителю для этой цели, а не сериализовать сущности.Основными причинами этого является то, что при сериализации сущности могут предоставлять больше информации о ваших данных, чем нужно потребителю, что также означает, что по сети передается больше данных, чем необходимо.Это также может представлять вводящее в заблуждение представление данных в том смысле, что коллекции / ссылки, которые не загружены с нетерпением, будут #null, значит ли это позже, что у них нет данных или что они просто не были загружены?
Autofac поддерживает .ProjectTo<T>
, который интегрируется в операции EQ IQueryable, чтобы упростить отображение для просмотра моделей по сравнению с использованием .Select
.