EFからSTEを公開するWCFサービスがあります。
[OperationContract, FaultContract(typeof(WarningFault)), FaultContract(typeof(ErrorFault))]
MyEntity GetMyEntityByID(int id);
[OperationContract, FaultContract(typeof(WarningFault)), FaultContract(typeof(ErrorFault))]
MyEntity SaveMyEntity(MyEntity myEntity);
シナリオは次のようになります。
- クライアントはWCF(GetMyEntityByID)からエンティティを取得します
- クライアントはこのエンティティにいくつかの変更を加えます
- クライアントはSaveMyEntityを呼び出します
- WCFサービスでは、この特定のエンティティがコンテキストにアタッチされ、dbに保存されます。(また、それ自体を保存する前に、いくつかのカスタム検証作業もあります。)
STEのため、これは非常にうまく機能しています。
しかし、私はこれが正確に良いパターンではないことに気づきました。(EF 5.0では、STEマークは推奨されません)
これの代わりにどのようなアプローチを使用する必要がありますか?私が正しく理解していれば、WCF Data Servicesはエンティティを公開するだけなので、この種の作業には適していません。また、保存、検証などはクライアント側で管理されます。