我使用的ADO.Net数据服务,并有一个服务操作结束返回一些LINQ的结果,实体声明。作为这些的LINQ语句的一部分有一个.INCLUDE(“NavProp”)以包括子对象。当运行此服务的操作也不会出现返回扩展包括。有谁知道任何这是为什么或如何解决呢?是否有可能在调用的服务操作添加关键字展开子对象? (我试过$扩大=子对象,但似乎并不工作 - 错误请求)。

我想与任一落得: 1)语法中为返回在.include也是一个服务操作的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)。服务运营将只返回或者灵长类动物的类型或实体。任何其他类型,包括自定义类型或扩展的实体不能从服务操作返回。为了解决这个问题必须刚刚从服务操作返回项目(S),然后如果有/扩展需要在客户端必须调用“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