2

ASP.NET MVC アプリケーションのリポジトリ パターンと依存性注入の概念に頭を悩ませようとしています。

Entity Framework を使用したリポジトリ パターンという記事に出くわし、コードがいかに単純であるかが非常に気に入りました。それほど多くのコードはないようで、すべて完全に汎用的です。つまり、ほとんどの人が行っているように、データベース内のさまざまなオブジェクトに対して複数のリポジトリを用意する必要はありません。これはまさに私が欲しいものです。

ただし、コードは最初にコード用に記述されているため、使用する予定はありません。

質問:

  1. 最初にコードを使用しないアプリケーションに同じコードを使用できなかった正当な理由はありますか?
  2. 最初にコードを使用しないアプリケーションに対して、誰かがより良いアプローチを推奨できますか? (私はこの一般的なパターンに絶対に賛成していることを心に留めておいてください。)
  3. 前進するのに役立つ他のヒントはありますか?
4

2 に答える 2

3

基礎となるデータ ストアのリポジトリ インターフェイスを作成できます次のように簡単にインターフェイスを定義できます。

public interface IRepository
{
    IQueryable<T> GetQueryable<T>();

    void Insert<T>(T item);
}

次に、それを実装するこの背後にあるクラスを実装できます。コードファーストである必要はありません。ObjectContextたとえば、EDMX ファイルから作成された でバックアップできます。

ここで重要なのは、適切な抽象化を作成することです。インターフェイスを使用して簡単にそれを行うことができ、その後、必要に応じて舞台裏で実装できます。

依存性注入を使用しているため、実装はそれほど重要ではありません。コントラクトを正しく定義している限り、実装 (およびそのテスト) は単純なはずです。それが機能しない場合、またはまったく別のデータ ストアが必要な場合は、依存性インジェクターに別の実装を使用するように指示するだけで、コントラクトは変更されません。

作成する抽象化についても同じことが言えます。データを読み書きするインターフェイスを持つことができます(参照する記事のように)。抽象化を引き出すだけです。

于 2012-12-03T20:32:57.797 に答える
1

これを見てください。このリンクが最も役立つと思います

http://www.codeproject.com/Tips/572761/Generic-repository-pattern-using-EF-with-Dependenc

このリンクでは、コード ファースト アプローチを使用せずに、MVC プロジェクトで依存性注入と共に汎用リポジトリ パターンが使用されます。

于 2013-04-11T05:55:44.017 に答える