我厌倦了编写数据访问层。我认为这是一项无聊且毫无意义的工作。我期望有一个开发环境,我可以在其中创建我的实体/模型并开始构建应用程序。编写数据访问层、存储过程等所需的时间只会消耗我的项目热情。
我想要的是一个通用的数据仓库接口。类似于:
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数据服务
- SQL Server
- sqLite
...但这个理论适用于任何数据存储库。
是否有人遇到过现成的解决方案,或者我必须编写更多的数据访问层来解决问题。
注意:我知道ORM,但我想要一些不需要编写任何DAL或存储过程的解决方案。