ReflectionDataProviderでWCFDataServices5.3.0を使用しています。ソースデータはRavenDBに保存されているため、すべてのクエリが延期されます。それで、ODataフィルターが適用された後、結果がクライアントに返される前に、クエリに対して.ToList()を呼び出す方法はありますか?
更新:私のDataModelプロパティ宣言
public IQueryable<PositionModel> Positions
{
get
{
using (var session = OLAPDocumentStore.OpenSession())
{
return session
.Query<ConsolidatedApplicationPosition>()
.Select(x => new PositionModel
{
ApplicationId = x.ApplicationId,
CategoryId = x.CategoryId,
ID = x.Id,
Platform = x.Platform,
Position = x.Position,
RegionalCode = x.RegionalCode,
Timestamp = x.Timestamp,
TopListId = x.TopListId
})
.AsQueryable();
}
}
}
解決策@matt-johnsonの回答を参照し、モデルのすべてのプロパティに[DataMember]を追加することを忘れないでください
[DataContract, DataServiceKey("Id")]
public class PositionModel
{
[DataMember]
public string Id { get; set; }
[DataMember]
public string ApplicationId { get; set; }
[DataMember]
public string CategoryId { get; set; }
[DataMember]
public int Position { get; set; }
[DataMember]
public string RegionalCode { get; set; }
[DataMember]
public DateTime Timestamp { get; set; }
[DataMember]
public string TopListId { get; set; }
}