asp.net核心怎么实现一个简单的仓储的方法

  介绍

这篇文章将为大家详细讲解有关asp.net核心怎么实现一个简单的仓储的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一直有自己写个框架的想法,但是一直没有行动起来,最近比较闲,正好可以开工了。

现在已经完成了两部分。1。一个简单仓储,实现使用的是ef 2.国际奥委会部分,这里是把内置的奥委会替换成了aotofac,这部分感觉还是有一点缺陷的。下面说

<强>仓储部分

这里主要是接口是实现,目前使用ef实现了仓储的接口。看一下代码

, public  interface  IRepository   where 才能;TEntity :类   ,{   # region 才能选择/Get/查询      IQueryable<才能;TEntity>, GetAll ();      IQueryable<才能;TEntity>, GetAllIncluding (params  Expression< Func在[],propertySelectors);      List<才能;TEntity>, GetAllList ();      Task<才能List祝辞,谓词);      Task<才能List祝辞,谓词);      T 才能;Query< T> (Func,, T>, queryMethod);      TEntity 才能得到(TPrimaryKey  id);      Task<才能;TEntity>, GetAsync (TPrimaryKey  id);      TEntity 才能;单(Expression祝辞,谓词);      Task<才能;TEntity>, SingleAsync (Expression祝辞,谓词);      TEntity 才能FirstOrDefault (TPrimaryKey  id);      Task<才能;TEntity>, FirstOrDefaultAsync (TPrimaryKey  id);      TEntity 才能;FirstOrDefault (Expression祝辞,谓词);      Task<才能;TEntity>, FirstOrDefaultAsync (Expression祝辞,谓词);      TEntity 才能加载(TPrimaryKey  id);      # endregion才能      ,# region 插入      TEntity 才能插入(TEntity 实体);      Task<才能;TEntity>, InsertAsync (TEntity 实体);      # endregion才能      # region 才能更新      TEntity 才能更新(TEntity 实体);      Task<才能;TEntity>, UpdateAsync (TEntity 实体);      TEntity 才能更新(TPrimaryKey  id, Action, updateAction);      Task<才能;TEntity>, UpdateAsync (TPrimaryKey  id, Func, updateAction);      # endregion才能      # region 才能删除      void 才能删除(TEntity 实体);      Task 才能DeleteAsync (TEntity 实体);      void 才能删除(TPrimaryKey  id);      Task 才能DeleteAsync (TPrimaryKey  id);      void 才能删除(Expression祝辞,谓词);      Task 才能;DeleteAsync (Expression祝辞,谓词);      # endregion才能      ,# region 骨料      int 才能Count ();      Task<才能;int>, CountAsync ();      int 才能;计数(Expression祝辞,谓词);      Task<才能;int>, CountAsync (Expression祝辞,谓词);      long 才能LongCount ();      Task<才能;long>, LongCountAsync ();      long 才能;LongCount (Expression祝辞,谓词);      Task<才能;long>, LongCountAsync (Expression祝辞,谓词);      # endregion才能   以前,}

下面是实现的部分代码,代码比较占版面,就不贴全了。

, public  abstract  class  RepositoryBase,:, IRepository   where 才能;TEntity :类   ,{   public 才能abstract  IQueryable< TEntity>, GetAll ();      public 才能abstract  IQueryable< TEntity>, GetAllIncluding (params  Expression< Func在[],propertySelectors);      public 才能virtual  List< TEntity>, GetAllList ()   {才能   ,,return  GetAll () .ToList ();   ,,}      public 才能virtual  async  Task祝辞,GetAllListAsync ()   {才能   ,,return  await  Task.FromResult (GetAllList ());   ,,}   以前,}

asp.net核心怎么实现一个简单的仓储的方法