我的ApiController应该返回数据:
// GET api/profile
public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
return res;
}
当我在返回之前调试并检查res
时,它有91个HubBasicProfile
个对象的数据。
但是,当返回数据时,我看到91 {}
,空对象。根本没有数据。
任何人都知道为什么会这样?
由于 埃里克
答案 0 :(得分:1)
调用ToList()
方法。所以deferred执行不会发生。
public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
return res.ToList();
}
延迟执行意味着表达式的评估是 推迟到实际需要实现的价值 集合。
编辑:根据评论
如果您要序列化这些项目,则需要确保您的课程已标记为可序列化/具有[DataMember]
/ [DataContract]
属性。
答案 1 :(得分:0)
我想这是因为IEnumerable将使用延迟评估,并且不会被要求枚举它的集合。
当你正在调试时,你告诉调试器枚举'res'以便看到结果。
如果在返回之前执行.ToList()或类似操作,您会看到结果吗?