2017-07-17 53 views
0

我想使用選擇查詢在這Get方法,因爲當我搜索客戶與id 4,它只是顯示其第一個記錄不是所有記錄,這裏是我的方法,我' m使用簡單的mvc服務。Asp.net的web API獲取方法

我認爲它只顯示第一條記錄,因爲#FirstOrDefault選項,任何人都可以推薦我使用什麼查詢或任何其他選項?

` public sales_order Get(int id) 
    { 
     using (project_smartEntities entities = new project_smartEntities()) 
     { 
      entities.Configuration.ProxyCreationEnabled = false; 
      return entities.sales_orders.FirstOrDefault(e => e.customer_id == id); 
     } 


    }` 
+0

所以......你指望那裏是多個匹配記錄,並希望將它們全部歸還? – David

+1

嗨,歡迎來到Stack Overflow,請閱讀如何創建[Minimal,Complete和Verifiable示例](https://stackoverflow.com/help/mcve),並查看[如何提出好問題](https:/ /stackoverflow.com/help/how-to-ask),這樣你可以增加獲得反饋和有用答案的機會。 – DarkCygnus

回答

0

顧名思義,.FirstOrDefault()返回第一(或默認)匹配的記錄。 (對於引用類型,默認爲null。)如果你想找到匹配查詢這許多記錄,你會使用SQL-恰當地命名爲.Where()代替:

return entities.sales_orders.Where(e => e.customer_id == id); 

由於該返回對象的集合而不是一個單一的對象,這也當然會必要改變方法的返回類型:(或任何其他適用集合類型IEnumerable<>只是往往最簡單的。)

public IEnumerable<sales_order> Get(int id) 

+0

「'ObjectContent'1'類型未能序列化內容類型'application/json; charset = utf-8'的響應正文。」它給出了這個錯誤 –

+0

@RafiaZaheer:有沒有關於序列化錯誤的細節的內部異常? – David

相關問題