O Entity Framework sempre inclui dados que estão em contexto mesmo se eu não pedir

Eu estou usando o MVC.NET web api, EF com o DB primeiro, e tenho carregamento lento desligado no meu contexto. A EF está retornando muitos dados, mesmo com o LazyLoading desligado.

Por exemplo, eu tenho usuários com uma função. Quando eu consultar para usuários e incluir função, a propriedade Role.Users é preenchida automaticamente com dados desde que os usuários foram carregados no contexto.

Por que eu não consigo que a EF me dê apenas o que eu peço? Ou estou sentindo falta de algo grande aqui?

public partial class User
{
    public int UserID { get; set; }
    public string Title { get; set; }
    public string Email { get; set; }
    public int RoleID { get; set; }

    ....

    public virtual Role Role { get; set; }
} 

public partial class Role
{
    public int RoleID { get; set; }
    public string RoleName { get; set; }

    ....

    public virtual ICollection<User> Users { get; set; }
} 




return db.Users.Include(u => u.Role);
// ^^ user.Role.Users is filled with 1000s of users

TL; DR - Eu quero que o EF nunca carregue dados em propriedades de navegação / coleções, a menos que eu .Include () diretamente. Ao serializar para JSON, quero exatamente o que peço explicitamente. Parece que, mesmo com o carregamento lento, as propriedades de navegação que já estão no contexto (isto é, geralmente "referências circulares") serão carregadas e retornadas.

questionAnswers(5)

yourAnswerToTheQuestion