2016-08-22 32 views
0

我似乎無法找到我正在嘗試執行的操作。使用MVC和C#和Web API理解SQl查詢時遇到困難

SQL數據庫的表中包含VisitIndex和TypeIndex作爲兩列。我已經爲它連接了一個MVC實體控制器。所以,在Web API控制器中,我有GetVisit下面的工作來抓取記錄與該visitindex(它的關鍵),但GetVisit2不 - 不會編譯,因爲我失去了一些東西。它以Visit v = db開頭。和查詢,應該是顯而易見的,我希望有兩個id都指定的記錄。我可能會以錯誤的方式去做?

任何,所有幫助讚賞!

// GET: api/Visits/5 
    [ResponseType(typeof(Visit))] 
    public IHttpActionResult GetVisit(int id) 
    { 
     Visit visit = db.Visits.Find(id); 
     if (visit == null) 
     { 
      return NotFound(); 
     } 

     return Ok(visit); 
    } 
    // GET: api/Visits/id/typeindex is what i want (or similar) 
    [ResponseType(typeof(Visit))] 
    public IHttpActionResult GetVisit2(int id, int typeIndex) 
    { 
     Visit v = db.Visits.Where(f => f.VisitIndex == id && f => f.TypeIndex == typeIndex).SelectMany(f => f.Visit); //.Select(f => f.TypeIndex == id); //.ToList(); 
     if (v == null) 
     { 
      return NotFound(); 
     } 

     return Ok(v); 
    } 
+1

'。凡(F => f.VisitIndex == ID && f.TypeIndex == typeIndex)' –

回答

0

你只想要1'Visit'Object。如果關閉,你也是LINQ syxtax。因此,嘗試這樣的事情:

Visit v = db.Visits.FirstOrDefault(f => f.VisitIndex == id && f.TypeIndex == typeIndex); 

如果「VisitIndex」和「TypeIndex」的組合,我認爲不是唯一的。 更改這樣的代碼:

List<Visit> v = db.Visits.Where(f => f.VisitIndex == id && f.TypeIndex == typeIndex);