大叔 EF 来分析 EntityFrameworks.Data.Core 2


Extensions

1
DbCommand拦截器扩展
DbCommandInterceptorExtensions

2
Class for IQuerable extensions methods
 Include method in IQueryable ( base contract for IObjectSet ) is
 intended for mock Include method in ObjectQuery{T}.
 Paginate solve not parametrized queries issues with skip and take L2E methods

IQueryableExtensions

3
ObjectContext扩展方法
ObjectContextExtensions

4
sql函数的扩展类

SqlFunctionExtensions


 ----------------------------------------------------------------------------
DbContextRepository<TEntity>

     DbContext上下文仓储功能类,领域上下文可以直接继承它
     生命周期:数据上下文的生命周期为一个HTTP请求的结束
     相关说明:
    /// 1 领域对象使用声明IRepository和IExtensionRepository接口得到不同的操作规范
    /// 2 可以直接为上下注入Action<string>的委托实例,用来记录savechanges产生的异常
    /// 3 可以订阅BeforeSaved和AfterSaved两个事件,用来在方法提交前与提交后实现代码注入
    /// 4 所有领域db上下文都要继承iUnitWork接口,用来实现工作单元,这对于提升程序性能与为重要


DbContextRepository<TEntity>

继承:  IExtensionRepository<TEntity>

约束 where TEntity : class

-------------------------------------------------------------------
MemorySet<TEntity>

  /// In memory IObjectSet. This class is intended only
    /// for testing purposes.
继承  IObjectSet<TEntity>
约束 where TEntity : class
-------------------------------------------------------------------


MockRepository<TEntity>
模拟测试数据上下文,它的生命周期为一个调试上下文的结束
继承 IExtensionRepository<TEntity> 扩展的Repository操作规范


-------------------------------------------------------------------

ObjectContextRepository<T>

 /// EF ORM 操作功能类
 /// 它不是抽象类,它在基础设施层会以基类或者功能对象的方式出现

继承 IExtensionRepository<TEntity>  扩展的Repository操作规范

原文地址:https://www.cnblogs.com/ganmk--jy/p/5370141.html