Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IQueryable对象包含5个对象,但调用它时不显示任何内容_C#_Asp.net_Json_Asp.net Web Api_Iqueryable - Fatal编程技术网

C# IQueryable对象包含5个对象,但调用它时不显示任何内容

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

我的Web API服务有问题。我从数据库中获得了一个
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();
}
当我调用URI
api/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,这将避免每次调用都会拉下他的整个数据库。