2

私は ADO.Net Data Services を使用しており、いくつかの linq to entities ステートメントの結果を返すサービス操作があります。これらの Linq ステートメントの一部として、サブオブジェクトを含める .Include("NavProp") があります。このサービス操作を実行すると、展開されたインクルードが返されないようです。それがなぜなのか、それを修正する方法を知っている人はいますか?そのサブオブジェクトを拡張するために、サービス操作の呼び出しにキーワードを追加することは可能ですか? ( $expand=subObject を試しましたが、うまくいかないようです - 悪いリクエストです)。

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)
4

2 に答える 2

1

この問題について MS に電子メールを送信したところ、サービス操作の URI で拡張クエリ オプションを使用することで解決できました。例えば、

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

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

お役に立てれば。

于 2009-07-22T07:10:27.270 に答える
1

これは現時点では不可能のようです (.net 3.5 SP1)。Service Operations は、プリミティブ型またはエンティティのみを返します。カスタム型や展開されたエンティティを含むその他の型は、サービス操作から返すことはできません。これに対処するには、サービス操作からアイテムを返す必要があり、クライアント側でインクルード/展開が必要な場合は、目的のオブジェクト展開のために「LoadProperty」を呼び出す必要があります (注: これは、別のデータベース ヒットを意味しますLoadProperty 呼び出し)。

于 2009-02-11T00:17:00.070 に答える