2011-09-16 12 views
1

私のプロジェクトでは、エンティティごとに複数のリポジトリがあり、それぞれに独自のdatacontext(私のリポジトリの基本クラスに由来)があります。サービス層とリポジトリのパフォーマンスに関する質問

私のサービスレイヤーでは、ビジネスロジックが複数のリポジトリにオブジェクトを追加/編集する必要があることが多いため、異なるDataContextを使用するinturnがあります。

だから私は複数のリポジトリで.SaveContextをやってしまう。理想的には、1つのコンテキストでSaveを押す必要があり、DBへの1つのado.netコールがすべてのタスクを実行する必要があるように、悪いことに思えます。

私はここで間違っていますか?それはあなたの複数のリポジトリを単一の論理トランザクションに参加することを可能にするよう

おかげで

答えて

5

あなたは、あなたのリポジトリとのUnit of Work patternを使用して見てする必要があります。

これを行う方法については、ネットの周りにたくさんのブログ記事があります。 The Unit Of Work Pattern And Persistence Ignorance

ASP.NET MVC, DataContext and The Unit of Work Pattern

  • Using Repository and Unit of Work patterns with Entity Framework 4.0
    • はまた、ここで働い+リポジトリパターンの単位でMVCとEFを使用して歩く good tutorialです。

      ここでは、どのように動作するかを説明する素敵な図があります。

      enter image description here

  • +0

    甘い..非常に多くの素晴らしい例のおかげで。私はパターンの名前を知っていなかったし、まさに私のアーキテクチャから欠けていたものでした。今私は4時間の1つの座席でそれを実装しました..それは笛のようにきれいで、ずっと速いです! – MoXplod

    関連する問題