2012-02-06 8 views
1

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

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

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

おかげ

答えて

1

私の提案あなたがIDataServiceUpdateProviderのカスタム実装を持つことができるように、カスタムWCFデータサービスプロバイダになります。 http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx

+0

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

0

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

+0

すでに 'public IQueryable Products'プロパティを持っている私のコンテキストクラスでは、HTTP PUTを使って呼び出すことができる' public IUpdatable UpdateProduct'のような別のプロパティを作成しますか? – SockBiscuit

+0

コンテキストクラス自体は、 "class MyContext:IUpdatable {...}"のようなインタフェース –

+0

(申し訳ありません)を実装し、インタフェースが定義するすべてのメソッド/プロパティを実装する必要があります。 –

関連する問題