私は基本的にデータアクセスレイヤーを書くのにうんざりしています。私はそれを退屈で無意味な努力だと思っています。エンティティ/モデルを作成してアプリケーションの構築を開始できる開発環境を想定しています。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またはストアドプロシージャを作成する必要がないものが必要です。