Сколько вам нужно, чтобы «прикоснуться» к навигационной собственности, чтобы обеспечить ленивую загрузку коллекции?Как запустить ленивую загрузку в навигационной собственности?
Я использую Entity Framework 5.0 с включенной ленивой загрузкой. Рассмотрим простой класс:
public class MyResource
{
string name {get;set;}
public virtual ICollection<ResourceEvent> ResourceEvents{ get; set; }
}
Когда я создал «Еогеасп» на коллекции, я хочу, чтобы избежать отдельного извлечения каждого объекта в коллекции.
using(context = new MyDBContext)
{
MyResource aresource = context.MyResources.Where(a=>a.Name==myname).Single();
//now I want to lazy load the ResourceEvents collection
if(aresource.MyResources!=null) // will this load collection?
{
List<ResourceEvent> alist = aresource.MyResources.ToList();//or must I add this?
foreach(ResourceEvent re in alist)// (or in aresource.MyResources)
{
//do something
}
}
}
Я знаю, что я могу использовать Include(), но предположим, что объект MyResource приходит откуда-то, где мы не знаем, был ли сбор был получен или нет.
Спасибо, я понимаю, что есть способы с нетерпением и явной нагрузкой. Мой вопрос заключался в том, будет ли проверять значение null на ленивую загрузку коллекции? – user2675238