WCF 데이터 서비스 5.3.0을 리플렉션 데이터 공급자와 함께 사용합니다. 내 원본 데이터가 RavenDB에 저장되어 있으므로 모든 쿼리가 지연됩니다. 그래서, OData 필터를 적용한 후 결과가 클라이언트에 반환되기 전의 내 쿼리에 대해 .ToList()를 호출하는 몇 가지 방법이 있습니까?RavenDB를 WCF Data Services와 함께 사용하려면 어떻게해야합니까?
UPDATE :
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();
}
}
}
솔루션은 매트 - 존슨 답변을 @ 참조 및 모델의 모든 속성에 [DataMember를] 추가하는 것을 잊지 마세요 내 DataModel이 속성 선언
[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; }
}
OData에는 의도적으로 지연되는 'IQueryable'이 필요합니다. 보다 구체적인 대답을 원한다면 몇 가지 코드를 보여주십시오. –
일부 소스 코드로 질문을 업데이트했습니다. –
'.AsQueryable()'은 여기서 중복됩니다. 그만 둘 수 있습니다. 질문의 다른 부분이 있었습니까? 나는 네가하고 싶은 것을 확신하지 못한다. 작동하지 않는 것은 무엇입니까? –