質問

フォームのサービス操作があります:

[WebGet]
public IQueryable<BusinessObject> BusinessObjectsByType(string name)

アクセスルール付き

config.SetServiceOperationAccessRule("BusinessObjectsByType", ServiceOperationRights.All);

このサービス操作にWebブラウザーを介してアクセスすると、データが公開されますが、フィードとエントリ(Atompub形式)ではなく公開し、$ Top、$ Orderbyなどの基本的なクエリオプションを使用することもできません。要求されたリソースに」。指定されたすべての要件を一致させました http://msdn.microsoft.com/en-us/library/cc668788.aspx しかし、成功しません。どんな助けも感謝します。ありがとう。

役に立ちましたか?

解決

BussinesObjectがエンティティとして認識されていない場合、代わりにIENumerableを返すかのようにサービス操作が扱われます。クエリが機能するためには、サービス操作がエンティティタイプである場合、iQueryableを返す必要があります。 EFまたはリフレクションプロバイダーのいずれかを仮定すると、エンティティタイプは重要なプロパティ(ヒューリスティックまたはDataServiceKey属性を介して)を持つタイプであり、そのタイプIQUERYのコンテキストクラスにプロパティがあります。 BussinesObjectがエンティティではない場合、WCFデータサービスはサービス操作の結果に関するクエリをサポートできません。 1つだけを挙げると、多くの理由があります。応答をシリアル化するには、各オブジェクトに一意のURL(Atom:ID)が必要である必要があります。主要なプロパティは、エンティティでのみ定義できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top