Если вы, например, иметь сущность "OrderRow" и другую сущность "Order", в OrderRow будет навигационное свойство , которое указывает на Order, которому он принадлежит.
В настоящее время Entity Framework поддерживает только Явный Lazy Load, что означает, что если вы получили несколько OrderRows и хотите проверить что-то в Order, вам необходимо:
// or is an OrderRow
if(!or.Order.IsLoaded)
or.Order.Load()
or.Order.Cancel();
Однако, если у вас неявная ленивая загрузка, вам не нужна проверка IsLoaded, она будет выполнена автоматически, вы можете выполнить or.Order.Cancel()
напрямую, и при необходимости ордер будет загружен автоматически. Это то, как работает linq-to-sql, и это экономит время при наборе текста и некоторый риск ошибок. С другой стороны, это не совсем ясно, когда и как будет осуществляться доступ к базе данных. С неявной загрузкой легко написать неэффективный код, который делает одну поездку по БД на каждую строку, извлекаемую из таблицы.