2017-04-17 68 views
-3

我想使用的元組,所以我可以在同一個視圖中使用2種型號,我在我的控制器這樣做:如何使用元組MVC 5

public ActionResult Index(int id = 0) 
{ 
    int lastVoyageID = entities.log_voyage.Max(item => item.Num_Voy); 

    var first = entities.log_voyage.Where(v => v.Num_Voy == lastVoyageID); 
    log_voyage voyage1 = entities.log_voyage.Find(lastVoyageID); 
    var second = entities.log_ligne_voyage.Where(x => x.NUM_Voy == lastVoyageID).ToList(); 
    var t = new Tuple<log_voyage, log_ligne_voyage>(first, second); 
    return View(t); 
}  

,但我得到這個:

我不知道該怎麼辦?我如何使用元組?

這是錯誤:

無法轉換成system.Linq.IQueryable WebApplication.Models.log_voyage

回答

0

var first = entities.log_voyage.Where(v => v.Num_Voy == lastVoyageID)回報集合,但元組預計單個對象,因此它應該是;

var first = entities.log_voyage.Where(v => v.Num_Voy == lastVoyageID).FirstOrDefault()

而這個表達式返回收集和元組再次

var second = entities.log_ligne_voyage.Where(x => x.NUM_Voy == lastVoyageID).ToList()

您可能要更改元組簽名Tuple<log_voyage, List<log_ligne_voyage>>

最後尋求的只是一個對象,

public ActionResult Index(int id = 0) 
{ 

    int lastVoyageID = entities.log_voyage.Max(item => item.Num_Voy); 

    var first = entities.log_voyage.Where(v => v.Num_Voy == lastVoyageID).FirstOrDefault(); 
    log_voyage voyage1 = entities.log_voyage.Find(lastVoyageID); 
    var second = entities.log_ligne_voyage.Where(x => x.NUM_Voy == lastVoyageID).ToList(); 
    var t = new Tuple<log_voyage, List<log_ligne_voyage>>(first, second); 
    return View(t); 

}