문제

ADO.NET Data Services를 사용하고 있으며 일부 LINQ의 결과를 엔터티 명령문으로 반환하는 서비스 작업이 있습니다. 이러한 LINQ 문의 일부로 하위 객체를 포함 할 .include ( "navprop")가 있습니다. 이 서비스 작업을 실행할 때 확장 된 확장 된 반환이 포함되지 않은 것으로 보입니다. 그 이유 또는 어떻게 고치는 지 아는 사람이 있습니까? 해당 하위 객체를 확장하기 위해 서비스 작업에 호출에 키워드를 추가 할 수 있습니까? ($ 확장 = subobject를 시도했지만 작동하지 않는 것 같습니다 - 잘못된 요청).

나는 다음 중 하나로 끝나고 싶습니다. 1.) 서비스 작업에서 LINQ 명령문에 대한 구문.

something like:
(from c in context.MyObj.Include("SubObj")
select c).ToList()
(this works inside the service operation, but doesn't provide the SubObj on the client side)

또는

2.) 서비스 작업 요청에 대한 구문이 서브 버젝트를 확장합니다.

something like: http://localhost/MyDataService/MyDataService.svc/ServiceOp1?param1=234$expand=SubObj (note: this doesn't work)
도움이 되었습니까?

해결책

현재는 불가능한 것 같습니다 (.NET 3.5 SP1). 서비스 운영은 원시 유형이나 엔티티 만 반환합니다. 사용자 정의 유형 또는 확장 된 엔티티를 포함한 다른 유형은 서비스 작업에서 반환 할 수 없습니다. 이 문제를 처리하려면 서비스 작업에서 항목을 반환 한 다음 클라이언트 측에서 포함/확장이 필요한 경우 원하는 객체 확장을 위해 "loadProperty"를 호출해야합니다 (참고 : 이는 다른 데이터베이스가 적중해야합니다. LoadProperty 호출).

다른 팁

이 문제에 대해 MS를 이메일로 보내면 솔루션은 서비스 작업의 URI에서 확장 쿼리 옵션을 사용하는 것입니다. 예를 들어,

.../<ServiceOperationName>.svc?$expand=<Property1Name>,<Property2Name> ...

Service Operation: GetCustomer
Relationship Property to load: Address
Uri: .../<GetCustomer>.svc?$expand=Address

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top