Entity Framework 7 Include() not working as expected

Viewed 1389

EF7 fills contained navigation properties even when not requested. For example, I have the below entities.

public class Employee
{
    public int EmployeeId { get; set; }
    public string Name { get; set; }
    public string Gender { get; set; }
    public int DepartmentId { get; set; }
    public Department Department { get; set; }
}

public class Department
{
    public int DepartmentId { get; set; }
    public string Name { get; set; }
    public ICollection<Employee> Employees { get; set; }
}

My fetch query is as below.

ctx.Employees.Where(e => e.Gender == "Male").Include(e => e.Department)

I get Department property of Employee object filled – which is as expected as I have an Include for Department. I find that Department.Employees is also filled but partially (only with male employees). I have not specified an Include for Department.Employees, but it is still getting populated. Is this behavior by design? Is there any way to avoid fetching Department.Employees in this scenario?

I am using EF7 NuGet package with version 7.0.0-rc1-final.

1 Answers
Related