Я прочитал этот tutorial и этот article но я не понимаю точно использование каждого типа загрузки.
Объяснение
У меня есть этот POCO:
public partial class dpc_gestion
{
public dpc_gestion()
{
this.ass_reunion_participant = new HashSet<ass_reunion_participant>();
this.dpc_participant = new HashSet<dpc_participant>();
this.dpc_reunion = new HashSet<dpc_reunion>();
}
public int dpc_id_pk { get; set; }
public Nullable<int> dpc_id_gdp_fk { get; set; }
public Nullable<int> dpc_id_theme { get; set; }
public int dpc_id_animateur_fk { get; set; }
public Nullable<System.DateTime> dpc_date_creation { get; set; }
public Nullable<System.DateTime> dpc_date_fin { get; set; }
public Nullable<System.DateTime> dpc_date_engag_anim { get; set; }
public Nullable<bool> dpc_flg_let_engag_anim { get; set; }
public Nullable<bool> dpc_flg_fsoins_anim { get; set; }
public virtual ICollection<ass_reunion_participant> ass_reunion_participant { get; set; }
public virtual theme_dpc theme_dpc { get; set; }
public virtual gdp_groupe_de_pair gdp_groupe_de_pair { get; set; }
public virtual ICollection<dpc_participant> dpc_participant { get; set; }
public virtual ICollection<dpc_reunion> dpc_reunion { get; set; }
}
Я понял это:
-
Для ленивой загрузки: потому что нагрузка ленива, если я вызываю dbset
dpc_gestion
, все свойства навигации не будут загружаться. Этот тип загрузки является лучшим в производительности и быстроте. Он включен по умолчанию, и если я хотел бы снова включить его, я должен установить:context.Configuration.ProxyCreationEnabled = true; context.Configuration.LazyLoadingEnabled = true;
-
Для активной загрузки Он не ленив: он загружал все свойства навигации, когда я загружаю
dpc_gestion
. Свойства навигации можно загрузить с помощью методаinclude
. Чтобы включить этот тип загрузки:context.Configuration.LazyLoadingEnabled = false;
-
Для явной загрузки Это похоже на нетерпеливую загрузку, но мы используем
Load
метод вместоinclude
.
Итак, я хотел бы знать:
- Если это небольшое резюме верно?
- Если это правда, в чем разница между нетерпеливой и явной загрузкой?
- Если я использую ленивую загрузку, и я вызываю например
dpc_gestion.dpc_participant
, загружаются ли свойства навигации? или я получу исключение? - Есть ли случай, когда интенсивная загрузка или явная загрузка лучше, чем ленивая загрузка в производительности и отзывчивости?
Спасибо