C# IQueryable对象包含5个对象,但调用它时不显示任何内容
我的Web API服务有问题。我从数据库中获得了一个C# IQueryable对象包含5个对象,但调用它时不显示任何内容,c#,asp.net,json,asp.net-web-api,iqueryable,C#,Asp.net,Json,Asp.net Web Api,Iqueryable,我的Web API服务有问题。我从数据库中获得了一个Societe对象列表,我希望让web服务返回JSON格式的数据。为此,我在我的SocieteController中创建了以下方法: // GET api/Societe public IQueryable<Societe> GetSociete() { SocieteManager manager = new SocieteManager(db); List<Societe> listeSociete
Societe
对象列表,我希望让web服务返回JSON格式的数据。为此,我在我的SocieteController
中创建了以下方法:
// GET api/Societe
public IQueryable<Societe> GetSociete()
{
SocieteManager manager = new SocieteManager(db);
List<Societe> listeSociete = manager.getAllSociete();
return listeSociete.AsQueryable();
}
//获取api/Societe
公共可查询的GetSociete()
{
SocieteManager=新的SocieteManager(db);
List listSociete=manager.getAllSociete();
return listeSociete.AsQueryable();
}
当我调用URIapi/Societe
时,我得到5个空的JSON括号。看起来服务获得了这些对象,并且知道有多少个,但它无法显示它们
调试时,我可以看到listeSociete
包含5个Societe
对象
知道发生了什么吗?提前谢谢 LINQ查询不会立即执行,这通常称为。尝试在序列末尾添加
ToList()
扩展方法:
return listeSociete.AsQueryable().ToList();
您可能可以删除AsQueryable()
调用,因此该行变为:
return listeSociete.ToList();
另外,可能是您必须返回
IEnumerable
,而不是IQueryable
。我所看到的所有使用Web API 2实现的示例都返回IEnumerable
这是正确的,除非他想将其用作OData服务。我已经尝试了您所说的,但它显示了相同的结果。空括号!您是否也将方法的返回类型更改为IEnumerable
?您使用的是哪一版本的Web API?是的,您的答案都是正确的。这是我的错,兴业银行的毕业生没有正确地书写。@AD.Net这只对了一半。OP应该更改他的SocieteManager
,以返回一个真正的IQueryable,这将避免每次调用都会拉下他的整个数据库。