1

我的viewmodel中的大部分值都成功返回,但在更新我的模型類後,其中兩個值(與數據庫中的其他表綁定)返回空值,即使我沒有改變我的分配方式。我已經意識到這個問題是:ViewModel問題返回空值到視圖

Vehicles = utc.Vehicles.OrderByDescending(v => v.DateCreated).Take(10).ToList() 

它不包括車型和製造商。我正在尋找一種方法來更改此聲明爲:

Vehicles = utc.Vehicles.Include(v => v.Model).Include(v => v.Model.Manufacturer).OrderByDescending(v => v.DateCreated).Take(10).ToList() 

但它會引發錯誤並且不會編譯。

任何人都可以協助嗎?

編輯 這是我的代碼。對於控制器:

public ActionResult Index() 
    { 
         var home = new HomeViewModel 
     { 
      latestVehiclesViewModel = new LatestVehiclesViewModel 
      { 
       Vehicles = utc.Vehicles.Include("Model").Include("Manufacturer") 
     .OrderByDescending(v => v.DateCreated) 
     .Take(10) 
     .ToList() 
      }, 

      searchViewModel = new SearchViewModel 
      { 
       Manufacturers = utc.Manufacturers.ToList(), 
       //Models = utc.Models.ToList(), 
      } 
     }; 
     return View(home); 
    } 

對於模型型號:

public class Model 
{ 
    public int ModelId { get; set; } 
    public int ManufacturerId { get; set; } 
    public string Name { get; set; } 
    public List<Vehicle> Vehicles { get; set; } 
    public Manufacturer Manufacturer { get; set; } 
} 
+0

'return View(home);'什麼是'home'? – haim770

+0

對不起,修好了。 –

回答

2

我EF5不允許我傳遞一個表達式作爲參數傳遞給DbSet()包含。

試試這個比較:

Vehicles = utc.Vehicles.Include("Model").Include("Manufacturer") 
      .OrderByDescending(v => v.DateCreated) 
      .Take(10) 
      .ToList() 
+0

這個編譯,但是我得到一個新的錯誤:指定的包含路徑無效。 EntityType'UnderTrader.Models.Vehicle'沒有聲明名稱爲'Manufacturer'的導航屬性。 –

+0

然後......也許它沒有一個名爲'Manufacturer'的導航屬性......但是我怎麼才能真正看到,因爲你是唯一一個注意到.edmx,模型類,dbcontext類的人.. ....發佈您的代碼;) –

+0

現在添加我的代碼... –

0

我固定它自己......新的錯誤是我的錯,它應該是包括(「Model.Manufacturer」)......我已經接受了昆頓·伯恩哈特的答案因爲這正是幫助我將這個目標放在第一位的原因......謝謝。