2011-12-17 17 views
0

これは私がこれまでに試したことですが、いくつかのブログから学ぶだけで、私はジェネリックリポジトリの重要性を知っています。 、その上に何か良いチュートリアルは..asp.net mvc3とジェネリックリポジトリパターンLInq to SQL

interface IBlogRepoService<T> where T:class 
    { 
     void Add(T entity); 
     void Delete(T entity); 
     T GetById(long Id); 
     T Get(Func<T, Boolean> where); 
     IEnumerable<T> GetAll(); 
     IEnumerable<T> GetMany(Func<T, bool> where); 

    } 

があるが、私は、それを実装する方法を、別のモデルを混乱しgetttingていますので、あなたの人々が共有することを愛する一般的なパターンのための任意のチュートリアルでは、SQLあります。

  1. 私はasp.net mvc3(linqから汎用リポジトリパターンのあるsql)のプロジェクト階層をどのようにすべきか知りたいです。

答えて

1

Linq2SQLのリポジトリパターンの例はたくさんあります。あなたは、このようなEntity FrameworkのかNHibernateのようORMを使用して、データアクセスパッケージを選択する必要が最初にADOのようなものを中心に、独自のラッパーを書くよりもはるかに容易になります

http://www.codefrenzy.net/2011/10/06/a-generic-implementation-of-the-repository-pattern-for-linq-to-sql/

+0

これ以外にも、それをどのように実装すればよいでしょうか?あなたのブログはありますか?またはいくつかのサンプルコードやチュートリアルを行うには?プロジェクトの階層に関するもう1つのこと、それはどのようにすべきか? –

0

完全なサンプルについては、以下を参照してください。実装で使用するパッケージを決定したら、そのパッケージとデータベースの接続を操作する方法を提供します。

エンティティフレームワークを使用すると、実装は基本となるDataContextへのアクセスを非表示にします。 nHibernateを使用すると、実装によってISessionオブジェクトの詳細が隠されます。

実装が隠れている配管を理解したら、エンティティタイプ(ジェネリッククラス定義のT)をインターフェイスが提供する基本操作(Add、Delete、GetByIdなど)にマップするのはかなり簡単です

+0

これは、私たちがlinqをSQLに使用することを意味しますか?ジェネリックリポジトリ?私が初心者であるので、この問題を解決するのを助けることができますか?私の大学プロジェクトに打たれました –

+0

あなたはentityframeworkを使っているなら、リポジトリメソッドでlinq2sqlを使います。 nhibernateを使用している場合、linqを基準メソッド(http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx)で使用できます。一般的なリポジトリのポイントは、基本的なデータアクセス戦略(linq2sql)をコンシューマから隠すことです。 – Jason

+0

これはLinqをSQLまたはエンティティフレームワークに使用する方が適していますか?私はeラーニングプロジェクトを開発しています。オンラインになることはできますか?私はあなたとチャットします。 –