У меня есть несколько простых классов Code First с отношением «многие к одному».Если я извлекаю ребенка и использую «Включить» для извлечения «Школы», то все работает нормально, если я закомментирую строку «Школа = новая школа ()», но с ее помощью класс «Школа» не заполняется.Я предполагаю, что это ожидаемое поведение (кто-то может подтвердить?), Но оно меня поймало, особенно если учесть, что то же самое можно сделать со свойством коллекции.
public class Child
{
public Child()
{
School = new School();
}
public int Id { get; set; }
public string Name { get; set; }
public int SchoolId { get; set; }
public School School { get; set; }
}
public class School
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Child> Children { get; set; }
}
public class TestContext : DbContext
{
public TestContext(string connectionString)
: base(connectionString)
{
}
public DbSet<Child> Children { get; set; }
}
public class Test
{
public Test()
{
var context = new TestContext("...connectionstring...");
var child = context.Children.Include(x => x.School).Where(x => x.Id == 1).SingleOrDefault();
Debug.Assert(child.School.Id != 0, "School is null");
}
}