Сначала я использую код для проверки отложенной загрузки, модели, как показано ниже,
class Team
{
public int ID { get; set; }
public string Name { get; set; }
public string Boss { get; set; }
public string City { get; set; }
public List<Player> players { get; set; }
public Team()
{
players = new List<Player>();
}
}
class Player
{
public int ID { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public int Age { get; set; }
public Team team { get; set; }
}
и подобный контекст,
class testContext : DbContext
{
public DbSet<Team> teamSet { get; set; }
public DbSet<Player> playerSet { get; set; }
}
Я прочитал книгу Джулии Лерман "Programing Entity Framework",и запутался с ленивой загрузкой.Когда я пишу код, как показано ниже,
using (var context = new testContext())
{
//context.Configuration.LazyLoadingEnabled = false;
//var teams = from t in context.teamSet.Include(p=>p.players) select t;
var teams = from t in context.teamSet select t;
foreach (var v in teams)
{
Console.WriteLine(v.players.Count());
}
Console.Read();
}
Когда выполняется оператор foreach, я думаю, v.players.Count () попадет в базу данных и вернет мне значение, а если я отключил отложенную загрузку, онне попадет в базу данных и вернет мне ноль.Но независимо от того, включена я отложенная загрузка или отключена отложенная загрузка, значение всегда равно нулю.Мое понимание ленивой загрузки неверно?Кто-нибудь может помочь?