In my appliaction I am using EF. I have the service that can provide some information and clients who want to ask for that information.Let's imagine that I have a User, which has Address, the list of equipments, the list of subscriptions, the list of Balances. Each Balance has the list of Operations.    public class User{    public User()    {        Equipments = new HashSet<Equipment>();        Balances = new HashSet<Balance>();        Subscriptions = new HashSet<Subscription>();    }    public long Id { get; set; }    public string LastName { get; set; }    public DateTime DOB { get; set; }    public long AddressId { get; set; }    public Address Address { get; set; }    public ICollection<Equipment> Equipments { get; set; }    public ICollection<Balance> Balances { get; set; }    public ICollection<Subscription> Subscriptions { get; set; }}public class Equipment{    public long Id { get; set; }    public string Model { get; set; }    public int StateId { get; set; }    public long UserId { get; set; }    public User User { get; set; }}public class Balance{    public Balance()    {        Operations = new HashSet<BalanceOperation>();    }    public long Id { get; set; }    public decimal Amount { get; set; }    public int CurrencyId { get; set; }    public long UserId { get; set; }    public User User { get; set; }    public ICollection<BalanceOperation> Operations { get; set; }}public class BalanceOperation{    public long Id { get; set; }    public DateTime OperationDate { get; set; }    public long BalanceId { get; set; }    public Balance Balance { get; set; }}public class Address{    public int Id { get; set; }    public string City { get; set; }    public int HouseNumber { get; set; }}public class Subscription{    public long Id { get; set; }    public int ServiceId { get; set; }    public bool IsActive { get; set; }    public long UserId { get; set; }    public User User { get; set; }}Also I have a DTO UserInfo ,that can contain all that information. Clients want to aks for UserDto at different places of the app. But they don't need all the information all the time. For example, sometimes I will need only user with its Balances without operations. Sometimes - only equipments and subscriptions. Sometimes - balances WITH operations.So, what I want is the client to use one method to get info by providing some kind of includes.int includes = (int)(IncludeEnum.Adress | IncludeEnum.Subscriptions);UserInfo userInfo = _service.GetUserInfo(id, includes);The problem is how to build the architecture of the server, what patterns to use etc. Depends on Includes I will build different queries to DB and fill UserInfo in proper way. The server has to provide info and not to provide not needed info and even not to aks that info in DB. So it would reduce the number of requests. In EF i can use Include() to get related objects. Sometimes I can build queries using LINQ ( from ... join ... select).  Or may be all my thoughts are wrong? And I have to do all the things in different way?
Creating different queries to DB for one object
c#;architecture;.net;entity framework