2011-04-08 23 views
1

リポジトリパターンを使ったリサーチを少ししてきました。リポジトリのために独自のインタフェースを使用しています。C#:リポジトリパターン、標準インターフェースはありますか、自分で自分自身を調理すべきですか?

Findメソッドとそのようなものが実装できる標準のインターフェイスがあるのだろうかと思っていましたか?

私はGetProduct、GetProductsなどのようなもののために私自身のインターフェイスを実装する必要があると思いますか?

私は1つのリポジトリにすべてを置いていましたが、これはかなり大きくなっているようですが、私はそれを別のリポジトリに分けるべきですか?私は彼らがセキュリティ、製品、販売など何をするかによって別々に推測していますか?

私は、私は、各クラスが実装を考えて、標準タイプリポジトリのインターフェースを見て覚えているようだんが、私はそれ任意のヘルプや指導はあなたがでている場合は

+0

エンタープライズアプリケーションアーキテクチャリポジトリのパターンのために結合する適切なインタフェースであることを述べている - それは良いことです開始し、POCOのスターターキット、プリズムとdevforceのサンプルコードを見てください –

+0

あなたはどのORMを使用していますか? NHibernate、EF、Linq2Sql? – alexn

+1

興味深いのは、データアクセスメソッドを抽象化するパターンに関する質問には、使用しているデータアクセスメソッドに関する質問が含まれているということです。リポジトリは、使用しているORMを変更したり、依存したりしてはいけません。 – jfar

答えて

1

を高く評価し

への参照を見つけることができないようドメインドリブンの設計リポジトリについて話をする機会があります(あなたがそれらについて話す方法で与えてはならないと思います)、Steve Bohlen's DDD presentationのコードは標準のリポジトリインタフェースを提供します。つまり、広く使用されているとは言えません(すなわち、は標準です)が、DDDガイドラインにかなり近づいています(つまり、標準に続いて)。

データアクセス層のより一般的な概念については、DDDの概念と混同しているためリポジトリを呼び出さないようにしてください。 Entity FrameworkのObjectContextクラスのようなもの、あるいは場合によってはICollection<T>またはIDictionary<TKey, T>でさえあります。

+0

はい私はリポジトリについて話していますデータアクセスとクライアントの間にあるレイヤーであるパターン(martin fowler) – Martin

+0

ああ、DEAリポジトリパターン(ドメインに存在する)ではなく、PoEAAリポジトリパターン(DALとドメインの中間)について話しています。その場合、後者の段落が適用されます。 – Domenic

0

関連する質問リンクをたどって、私はこの興味深いブログ投稿を見つけました:Repository or DAO?: Repository

それは私がL2SとEFが付属して.ttファイルをいじってきた

public interface IRepository<T> : ICollection<T>, IQueryable<T> { } 
関連する問題