Проверить свойство Lazy Load загружено в EF6
Я использую свойства класса путем отражения в некоторых операциях, поэтому при использовании экземпляра DynamicProxy он заставляет загружать всю БД. (Более 700 классов связаны друг с другом).
можно ли проверить, загружено ли свойство lazy load или нет? Отключение генерации динамических прокси (ProxyCreationEnabled = false
) не используется в моем случае.
Customer oCustomer = context.get(1);
if(oCustomer.Location.HasLoaded)
do smt..
public class Customer
{
public decimal? Id {get; set;}
public virtual CustomerLocation Location{get; set;}
}
public class CustomerLocation
{
public decimal? Id {get; set;}
public string Detail {get; set;}
}
1 ответов
похоже, вы ищете для DbReferenceEntry
if (context.Entry(oCustomer).Reference(e => e.Location).IsLoaded)
или
if (context.Entry(oCustomer).Reference("Location").IsLoaded)
для свойств навигации типа коллекции просто используйте .Collection
вместо .Reference
.