2017-07-17 72 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

相关问题