0

私のApiControllerはデータを返すことになっています:

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

返される前にデバッグして検査resすると、91HubBasicProfile個のオブジェクトのデータがあります。

ただし、データが返されると、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 に答える