2012-04-23 22 views
0

WCFサービスをセットアップして、データベーステーブルにエントリを作成し、関連するデータの束とともにサービスの応答として返すようにしています。WCFサービスメソッド複数のパラメータを持つリポジトリへの実装

私はすべてのDataAccess作業を行うために、リポジトリパターンでEFを使用しています。渡すパラメータは静かな巨大なリスト(15+)です。

複合型(DTO)は、これを行うのがはるかにクリーンな方法ですか?またはこれのための他の代替手段。私はクリーンでシンプルな実装を探しています

...

詳細...

1)サービス側とリポジトリ側との間で共有されるすべてのパラメータ情報とDTOオブジェクトを作成します。リポジトリへのサービスメソッドから合格する

Public class RecordDTO 
    { 
    public string param1; 
    public string param2; 
    ..... 
    public string param15; 

    } 

2)使用DTOオブジェクト(両方のプロジェクトはDTOへのアクセス権を持っている必要があります)

Repository.CreateRecord(RecordDTO myRecordObj) 

3)リポジトリがこれを受信し、データを解析し、DATAACCESSのすべてのソートを行いますロジックを返し、クライアントと同様にサービスを理解して戻されるModelオブジェクトを返します。

これは可能かどうかを調べてみることです。

+0

あなたが改善しようとしているコードの簡潔な例を教えてもらえますか?サービス実装におけるCreateRecord(param1、............... param15)のようなメソッドのための – RQDQ

+0

は、サービス実装とリポジトリ側の両方で共有複合型ライブラリ(DTO)で記述することができます。 – sam

+0

元の質問を編集し、フォーマットされたコードを含めてください。コメントのコードは読みにくい。 – RQDQ

答えて

0

CreateRequest dtoを追加し、すべてのパラメータをカプセル化できます。それは多くの理由のために優れているし、それらのいくつかは以下のとおりです。 - 読みやすく - シンプルなメソッドのシグネチャ - これらのパラメータは、複数のリポジトリ方法で保存する必要がある場合は重大な変更に...

を防ぐには、あなたの中にトランザクション・スコープを追加することができますcallesサービスメソッドの実装。

これらのパラメータはすべて、このCreateRecord操作(1つのトランザクション)に論理的に属しているとします。彼らが複数のサービスメソッドに分割することができない場合。

+0

シングルサービス方式です。しかし、CreateRequest dtoは、一方向(すなわち、リポジトリへのサービス)のみを使用するためのものです。 ResponseオブジェクトはPOCOエンティティ(EFコードの最初のモデルオブジェクト)です。 – sam

関連する問題