OData/WCFデータサービスを介して基礎となるPOCOデータに対するCRUD操作

私はJSONを介してPOCOをjQuery Webクライアントに公開するC#2010のODataサービスを作成しようとしていますが、基礎となるデータを更新することもできます。私は、ODataを介した読み取り専用のPOCOデータの例と、Entity FrameworkとODataを介した更新可能なデータの多くの例を発見しました。

私の問題は、データが独自のデータベースにあるため、DBの更新を処理するビジネスロジックレイヤーが必要であり、OData/WCF Data Servicesモデルのどこに該当しないのか分かりません。 IQueryableリストを使用してPOCOエンティティにデータを設定し、SetEntitySetAccessRuleを使用してデータを公開していますが、ビジネスロジック/データモデルレイヤのメソッドを呼び出してデータをDBに保存するにはどうすればよいですか?

SetServiceOperationAccessRuleを使用してサービスメソッドを公開する必要がありますか?もしそうなら、誰かが簡単な例の指示に私を向けることができますか?

ありがとう

1

2 答え

My suggestion would be a custom WCF Data services provider, so that you can have a custom implementation of IDataServiceUpdateProvider. There is a good blog series at http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx

1
追加された
応答してくれてありがとう、非常に新しいこれは実装するための多くの仕事のように見えます。私はODataアプローチを廃止し、SOAPサービスを実装する方が良いでしょうか?そうすれば、私はPOCOのCRUD機能を公開し、jQueryから呼び出すことができますか?
追加された 著者 SockBiscuit,

IUpdatable/IDataServiceUpdateProviderを実装するRichの提案は正しいです。これは更新操作をサポートする方法です(EFプロバイダはこのインボックスを実装していますが、リフレクションプロバイダはそれを自分で行う必要はありません)。 リフレクションプロバイダを使用している場合でもIUpdatableを実装できます。コンテキストクラス(DataServiceにTとして渡すもの)がIUpdatableインターフェイスを実装するだけです。

0
追加された
コンテキストクラス自体はインタフェースを実装する必要があります:
追加された 著者 Vitek Karas MSFT,
(申し訳ありませんが) "class MyContext:IUpdatable {...}"のように、インターフェイスが定義するすべてのメソッド/プロパティを実装します。
追加された 著者 Vitek Karas MSFT,
したがって、すでに public IQueryable Products プロパティを持つ私のコンテキストクラスでは、HTTPを使用して呼び出すことができる public IUpdatable UpdateProduct プット?
追加された 著者 SockBiscuit,
ありがとう@Vitek、私は今IUpdatableを実装する方法を理解しています。私にとっては、カスタムDSPを書くことがたくさんあるように思えますが、WCF Data Servicesはこの場合に使用する適切な技術ではないと考えています。私は、SOAPサービスがより適していると信じています。
追加された 著者 SockBiscuit,