0

我試圖從下面的代碼執行以下調用(「api/test/sin = 2129VAH99,8974922 & sip = 108124AG3」),但我似乎無法讓調用工作,因爲它始終與'無數據'錯誤。如何在linq中查詢多個'Split'?

public HttpResponseMessage Get([FromUri] Query query) 
    { 
     var data = db.database_Items.AsQueryable(); 

     if (!String.IsNullOrEmpty(query.sip)) 
     { 
      var ids = query.sip.Split(',').ToList(); 

      data = data.Where(c => ids.Any(i => (c.SIP != null && c.SIP.Contains(i)))); 
     } 

     if (!String.IsNullOrEmpty(query.sin)) 
     { 
      var ids = query.sin.Split(',').ToList(); 

      data = data.Where(c => ids.Any(i => (c.SINs != null && c.SINs.Contains(i)))); 
     } 


     if (!data.Any()) 
     { 

      return Request.CreateErrorResponse(HttpStatusCode.NotFound, message); 
     } 

     return Request.CreateResponse(HttpStatusCode.OK, data); 
    } 

任何幫助/指導將非常感激。非常感謝。

+0

假設你正在尋找完整的'SIP' /'SIN'字符串,可能你的意思'data = data.Where(c => c.SIP!= null && ids.Contains(c.SIP));'? – StuartLC

+0

感謝您的回覆。我嘗試過使用上面提到的語句,還有更多類似的內容,但不幸的是,我仍然在api調用的客戶端遇到了「無數據錯誤」。 – user3070072

回答

0

嘗試您的網址更改爲:?

API /測試罪= 2129VAH99,8974922 & SIP = 108124AG3