0

我的 ApiController 应该返回数据:

// GET api/profile
public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
    IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
    return res;
}

当我在返回之前调试和检查res时,它有 91 个HubBasicProfile对象的数据。

但是,当返回数据时,我看到 91 {},空对象。根本没有数据。

有人知道为什么会这样吗?

谢谢埃里克

4

2 回答 2

1

调用ToList()方法。所以不会发生延迟执行。

public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
    IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
    return res.ToList();
}

延迟执行意味着表达式的评估被延迟,直到它的实现值被实际需要收集。

编辑:根据评论

如果您正在序列化这些项目,您需要确保您的类被标记为可序列化/具有 [ DataMember]/[DataContract]属性。

于 2012-07-26T12:41:46.627 回答
0

我想这是因为 IEnumerable 将使用惰性评估,并且不会被要求枚举它的集合。

调试时,您是在告诉调试器枚举“res”以便查看结果。

如果您在返回之前执行 .ToList() 或类似操作,您看到结果了吗?

于 2012-07-26T12:39:32.237 回答