3

私は基本的にデータアクセスレイヤーを書くのにうんざりしています。私はそれを退屈で無意味な努力だと思っています。エンティティ/モデルを作成してアプリケーションの構築を開始できる開発環境を想定しています。DALや手順などを書くのにかかる時間は、プロジェクトに対する私の熱意を損なうだけです。

私が欲しいのは、私のデータ用の汎用リポジトリインターフェースです。何かのようなもの:

public interface IRepository
{
    //Get individual TEntity item by id
    TEntity GetItem<TIdentifier, TEntity>(TIdentifier id);

    //Get individual TEntity item by the expression
    TEntity GetItem<TIdentifier, TEntity, TArg>(Expression<Func<TArg, TEntity>> expression);

    //Get individual TEntity item by the expression
    TEntity GetItem<TIdentifier, TEntity, TArg1, TArg2>(Expression<Func<TArg1, TArg2, TEntity>> expression);

    //Get all TEntity items
    IList<TEntity> GetList<TEntity>();

    //Get all TEntity items,  filtered by the expression
    IList<TEntity> GetList<TEntity, TArg>(Expression<Func<TArg, IList<TEntity>>> expression);

    //Get all TEntity items,  filtered by the expression
    IList<TEntity> GetList<TEntity, TArg1, TArg2>(Expression<Func<TArg1, TArg2, IList<TEntity>>> expression);

    TIdentifier CreateItem...

    bool UpdateItem...

    bool DeleteItem...
}

私は特に何かのために働くことに興味があります

  • Azure Data Services
  • SQLサーバー
  • sqLite

...しかし、理論はすべてのデータリポジトリに適用されます

誰かがすぐに構築されたソリューションに出くわしたことがありますか、それとも私がこれまでに固執したかったよりも多くのデータアクセスレイヤーを書くことによって問題を修正する必要がありますか?

注:ORMについては知っていますが、DALまたはストアドプロシージャを作成する必要がないものが必要です。

4

5 に答える 5

3

NHibernate、Castle ActiveRecord、SubSonic、LinqToSql、...を見てください。

あなたはORMについて知っていると言いますが、少なくとも可能な限り、ORMはあなたの質問が求めることをほぼ正確に実行します。

于 2009-08-13T13:48:21.983 に答える
2

あなたは ORM について知っていて、それらを望んでいないと言っていましたが、あなたが書いたデータアクセスメソッドが書かれているものに対処できますLINQか?

LINQステートメントよりもステートメントを書くのが好きだということがわかりましたSQL。あなたがこれにオープンであれば、私は Entity Framework、LINQ to SQL、NHibernateなどを調べます。

編集: Azure を使用する場合は、次のリンクを確認してください: http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/74a0a57e-d979-48ed-b534-f449bac0f90d

于 2009-08-13T13:49:46.587 に答える
1

LINQ to Entities と .Net 用の Entities フレームワークは、2 つの最適なクロスサーバー ソリューションです。

詳細はこちら: http://msdn.microsoft.com/en-us/library/bb386964.aspx

于 2009-08-13T14:01:50.037 に答える
0

LINQ を使用すると、実質的にすべてのデータ アクセス タスクが実行されます...

于 2009-08-13T13:51:40.537 に答える