大叔 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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30571465/article/details/94972142

智能推荐

函数封装:Ajax发送http请求(get&post)_将函数封装成http服务-程序员宅基地

ajax_tool.js:// 方法:ajax get 五部曲function ajax_get(url,data) { // 异步对象 var ajax = new XMLHttpRequest(); // url 方法 // 如果是get发送数据 发送的格式为 xxx.php?name=jack&age=18 // 所以 这里 需要拼接 url if (data)..._将函数封装成http服务

Log4J日志配置详解-程序员宅基地

今天群里一个哥们问一个问题:我想先控制每天日志的大小 比如10个1M的 这个是我最初使用的log4j配置文件里的内容log4j.appender.RF=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.RF.File=./log/log.txtlog4j.appender.RF.DatePattern='.'yyyy-M..._log4j日志配置详解

window版本下postgreSQL备份数据库提示pg_dump版本问题_windows版pg数据库报错pg_dump: [归档 (db)] 与数据库 "myais" 联接失-程序员宅基地

问题背景阿里云服务器上安装了pg12然后突然有一天数据不能备份了,报错提示如下所示:pg_dump: �������汾: 12.2; pg_dump �汾: 9.6.14pg_dump: ��Ϊ�������汾��ƥ�����ֹ解析:上面错误大多数是乱码,但是恰恰一个关键点提醒了我。其一是pg-dump与两个版本号12.2和9.6.14然后我猜测可能是我服务上同时安装了两个版本的pg造成数据库备份时候选择pg-dump出错了。其实开始也饶了很大一个远路,就是去升级pg-dump,但是网上没有_windows版pg数据库报错pg_dump: [归档 (db)] 与数据库 "myais" 联接失败: fe_send

【转】PowerPC&nbsp;+&nbsp;Linux2.6.25平台…_eepeom什么意思-程序员宅基地

http://blog.csdn.net/sailor_8318/article/details/5905988(本原创文章发表于S_eepeom什么意思

android appwidget 空间动画,Android学习之AppWidget高级效果_一代目的博客-程序员宅基地

接着AppWidget基础学习,今天是一个“进阶版”的小例子,用来检验一下自己的学习效果。于是就做了一个掷骰子的Widget。方便大家观看,先截图如下:需要注意的是在drawable文件夹下有几张图片,我是在网上下载的别人的素材。下面就开始我们的学习之旅吧。第一步:是在res/目录下创建一个名为xml的文件夹(其实名字是随意的,不必拘泥与这一个名字),然后在里面创建一个appwidget_info..._android appwidget动画

关于 SQL的组合索引的生效问题_组合索引什么情况下生效-程序员宅基地

建立的组合索引顺序:(a,b,c,d,e,f) 1、如果组合索引中的索引都在,则索引全部生效2、如果组合索引中最左边的索引a不存在,那么索引都不生效3、如果组合索引中最左边的索引a存在但没有使用全部的索引。首先按照建立索引的顺序排好,从a开始往后判断是否具有连续性(依据建立索引的顺序),如果直至最后都具有连续性,那么这些索引生效。如果在下一个节点处的索引连续性断掉,那么当前节点的索..._组合索引什么情况下生效

随便推点

Tensorflow出现Variable Actor/eval0/l1/kernel already exists, disallowed._valueerror: variable layers/fc0/kernel already exi_醉一心的博客-程序员宅基地

参考链接:https://blog.csdn.net/weixin_43283397/article/details/103289928?spm=1001.2014.3001.55061.问题描述Spyder或者Jupyter中重复运行Tensorflow的代码,会出现变量已经存在的问题。这是因为这些编辑器都会自动保存变量。具体错误描述:ValueError: Variable Actor/eval0/l1/kernel already exists, disallowed. Did you ._valueerror: variable layers/fc0/kernel already exists, disallowed. did you m

VC中,编译工具条内的Debug与Release选项是什么含义?_打开工程编译 64 位 release 是什么意思-程序员宅基地

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug带有大量的调试代码,运行时需要相应的运行库,发布模式程序紧凑不含有调试代码和信息,直接可以运行(如果不需要运行库)_打开工程编译 64 位 release 是什么意思

如何使用Mysqldump备份和还原MySQL数据库_mysqldump --database-程序员宅基地

本教程介绍如何使用 mysqldump 实用程序从命令行备份和还原 MySQL 或 MariaDB 数据库。mysqldump 实用程序创建的备份文件基本上是一组可用于重新创建原始数据库的 SQL 语句。mysqldump 命令还可以生成 CSV 和 XML 格式的文件。您还可以使用mysql转储实用程序将MySQL数据库传输到另一个MySQL服务器。如果不备份数据库,软件错误或硬盘驱动器故障可能是灾难性的。为了帮助您节省大量时间和挫折感,强烈建议您采取预防措施,定期备份MySQL数据库。M_mysqldump --database

物联网新零售项目 新零售-重构人、货、场_新零售电商人货场案例_办公模板库 素材蛙的博客-程序员宅基地

第1章 新零售-重构“人、货、场”1.智能售货机需求分析1.1 概念介绍1.1.1 新零售新零售是2016 年阿里巴巴董事局主席马云提出的概念。其实在这之前已经有相关新零售业务发展的初具规模了。为什么马云提出这一概念?因为纯电商的零售时代已经过去,未来的零售是线上和线下双向结合,双向引流,单独一方的获客成本都已经非常高了,并且线上流量的入口都基本已经关闭。新零售是利用互联网的新思维、新技术,对传统的零售方式进行改良和创新,将服务或者产品出售给最终消费者的一系列活动。新零售不仅仅是线上线下与物流的简_新零售电商人货场案例

JDBC心得体会-->总结_jdbc实验报告心得体会-程序员宅基地

JDBC部分终端进入mysql: mysql -u root回车终端进入oracle: telnet 192.168.0.23 然后sqlplus openlab/open123MySQL常用命令: show databases; use tableName; show tables;一、概述JDBC JDBC从物理结构上说就是Java语言访问数据库的_jdbc实验报告心得体会

基于Python的人脸识别和对比-程序员宅基地

github 地址https://github.com/yharvey956/socket_face_recognition使用Face Recognition人脸识别库检测识别对比人脸。测试环境 Python 3.6.4 Windows 10 Anaconda 4.5.12 Dlib 19.16.0 Face_Recognition 1.2.3 ...