0

[このブログ投稿: 「複数のインクルード ステートメントをリポジトリに渡す」 では、EF dbContext ベースのオブジェクトをハイドレートするときに、読み込まれた子の深さを制御する方法の概要を説明しています。リポジトリに Linq 式をフィードすることについての非常に優れた説明。

しかし、このブログには、Controller 自体で物事がどのように見えるかを説明することで、関連するワークフローを完全に締めくくる質問がぶら下がっています。

シン コントローラーが一般的に良いことであることに同意し、EF が主流の使用のポイントまで成熟している場合、リポジトリとコントローラーの間を仲介するのに最適なパターンはどれですか?

ジョージは質問をよりよく表現します:

これは完璧ですが、オブジェクトとその子が要求されるさまざまな方法をすべて処理するコントローラーをどのように作成すればよいでしょうか? CustomerOrderController と CustomerOrderLineItemsController の作成の問題ですか?

注:このリンクは SO によって自動的に提供され、おそらく「実行方法」に対応しています。使用する構文の概要がまだ必要です。

ムニムニクス

4

1 に答える 1

0

汎用リポジトリの使用を検討しましたか?

この記事は、作業単位パターンの実装に関して、あなたが望んでいるよりも少し進んでいます。タグには MVC が含まれているため、これを使用して、すべてのリポジトリとオブジェクトの同期を維持することをお勧めします。

次に、コントローラーのアクションで、含める必要があるプロパティを選択できます。

 private UnitOfWork _unitOfWork;

        public YourController()
        {
            _unitOfWork = new UnitOfWork();
        }
        //
        // GET: /Market/
        public ActionResult Index()
        {
            return View(_unit.YourRepository.Get(m => m.IsActive, null, "CollectionToLoad1,CollectionToLoad2"));
        }

この例では、IsActive ビットが true で、CollectionToLoad1 と CollectionToLoad2 を含むすべてのアイテムを取得します。

作業ユニットを実装したくない場合は、ユニットではなくコントローラーでレポを簡単に宣言し、直接呼び出すことができます。

于 2012-08-03T18:13:51.540 に答える