多数のエンティティといくつかのサービス操作を使用してADO.NETデータサービスを構築しようとしています。一方では、ADO.NETエンティティデータモデルとADO.NETデータサービスが配置されているASP.NETWebアプリケーションを作成しました。反対側では、データサービスへのサービス参照を持つ2番目のASP.NETWebアプリケーションを作成しました。
エンティティは非常にうまく機能しています。LINQを使用して、必要なデータを取得できます。
TestEntities entities = new TestEntities(
new Uri("http://localhost/service/service.svc"));
var query = from customer in entities.Customers
where customer.ID == 1234
select customer;
query.ToList();
これは機能します。ただし、Service Operationsを介して情報を取得することは、私にはまったくわかりません。データサービス側のコード:
public static void InitializeService(IDataServiceConfiguration config) {
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}
[WebInvoke]
public IQueryable<Customer> GetSomeCustomers() {
TestEntities entities = new TestEntities();
return from customer in entities.Customers
where customer.ID > 0 && customer.ID < 20
select customer;
}
クライアントプロジェクトにサービス参照を追加したとき、VisualStudioはサービス操作を取得しませんでした。構築されたURIと、DataServiceContextオブジェクトまたはTestEntitiesオブジェクト(この場合)のいずれかのBeginExecuteメソッド、またはそのようなものを介してそれらにアクセスできることはわかっていますが、それは私が望む方法ではありません。
私が欲しいのは、LINQを使用して、サービス操作の返されたデータを調べることです。これは可能ですか?そうあるべきですよね?