Should i preload navigation properties or use other way to deal with them in Entity Framework
<p>I am currently programming game which is using C# connected with Entity Framework.</p>

<p>I have a lot of relationships with tables which are main models used in game. Because of that i have to use a lot of navigational properties of those models.</p>

<p>When i create my viewModel i have code similar to this :</p>

<pre><code>        Avatar = new ImageViewModel(company.Entity.ImgUrl);
        CountryName = company.Region.Country.Entity.Name;
        RegionName = company.Region.Name;
        Name = company.Entity.Name;
        Money = MoneyViewModel.GetMoney(company.Entity.Wallet);
        OwnerName = company.Owner.Name;
        OwnerID = company.OwnerID;
</code></pre>

<p>Naturally it ends up firing multiple queries when i want to access navigational proprties. </p>

<p>I addressed this problem by using Include in my Controller before passing model to the view model constructor.
this is heavily consuming my time because in the end i need to recursively check which navigational properties are needed in my view models and include them manualy in first query.</p>

<p>My question is : 
Is this code design apropriate? If not then what is correct approach to this kind of problem?</p>

<p>Personally i feel that it will be cumbersome in long term.</p>