By KMSFan --  此系列的文章只作为自己的读书笔记,不纳入博客园首页。

  总结的知识点:

  1.DBContext 类

  2.Attribute里的属性(NotNull)

  3.DbContext实现的2个接口:1.IDisposeable 2.IDbContextService

  namespace Microsoft.Data.Entity.Commands

我们先来看看这个命名空间下的东西,有一个contextTool方法

里面有一个CreateContext方法。

由于我自己对DbContext比较的感兴趣,于是忍不住按了下F12,于是看到了以下的结构:

其中DbContext实现了2个接口,一个是IDisposable,另一个是IDbContextServices,我想,既然实现了这2个接口,那么肯定实现了这2个接口里的方法吧?!

心动不如行动,赶紧看看里面有什么东西。

IDisposable:

namespace System
{//// 摘要://     定义一种释放分配的资源的方法。public interface IDisposable{//// 摘要://     执行与释放或重置非托管资源相关的应用程序定义的任务。void Dispose();}
}

 IDbContextService

using System;namespace Microsoft.Data.Entity.Infrastructure
{public interface IDbContextServices{IServiceProvider ScopedServiceProvider { get; }}
}

  由于我用的是VS2015,嘿嘿,新功能,告诉大家一个小秘密,可以看哪些地方引用到了这个接口哦。

  由此可以看出这个接口的重要性了吧?!其实在EF里面有很多这样的东西,这也许正是EF强大的地方吧。让我们再回到CreateContext这个方法吧,其中有一个叫做Attribute的东西,我这里的是NOT NULL,就是不为空。

  

  也就是说,传入的参数是不为空的(形参)。我们来看看这个NOT NULL究竟是何方神圣?!

   internal sealed class NotNullAttribute : Attribute{}

  看到了吧?其实是一个封闭的内部类,里面什么都没有。网上我没找到答案,最终,万能的谷歌有了解答,嘿嘿。我就不翻译了,以后再来翻译。

http://stackoverflow.com/questions/4619185/what-is-an-internal-sealed-class-in-c

好了,今天就到这里,明天继续总结。

转载于:https://www.cnblogs.com/kmsfan/p/4181246.html

Entity FrameWork 365日系列文章源码研究 (1)相关推荐

  1. 一起谈.NET技术,.NET Framework源码研究系列之---万法归宗Object

    经过前面三篇关于.NET Framework源码研究系列的随笔,相信大家都发现其实.NET Framework的实现其实并不复杂,也许跟我们自己做的项目开发差不多.本人也是这样的看法.不过,经过仔细深 ...

  2. .NET Framework源码研究系列之---万法归宗Object

    原文地址:http://www.cnblogs.com/niyw/archive/2010/07/28/1787358.html 经过前面三篇关于.NET Framework源码研究系列的随笔,相信大 ...

  3. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)(转)

    阅读目录 一.MVC原理解析 1.MVC原理 二.HttpHandler 1.HttpHandler.IHttpHandler.MvcHandler的说明 2.IHttpHandler解析 3.Mvc ...

  4. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)

    前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...

  5. 分享106个ASP新闻文章源码,总有一款适合您

    分享106个ASP新闻文章源码,总有一款适合您 106个ASP新闻文章源码下载链接:https://pan.baidu.com/s/143-M0-nwEaUNwGyfFV4Hjw?pwd=af8r  ...

  6. wp实例开发精品文章源码推荐

    qianqianlianmeng wp实例开发精品文章源码推荐 WP8 启动媒体应用         这个示例演示了如何选择正确的msAudioCategory类别的音像(AV)流来配置它作为一个音频 ...

  7. 转载:ADO.NET Entity Framework 试水系列索引(2008/9/9更新,本系列结束)

    Visual Studio 2008发布时,微软给我们带来了LinQ to SQL,解决所谓"阻抗不匹配"问题.最近,随着Visual Studio 2008 SP1的正式发布,又 ...

  8. Entity Framework 5.0系列之Code First数据库迁移

    我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Cod ...

  9. GD32F30x系列ADC源码,对初学者参考价值巨大,(非常详细篇)万字源码

    GD32F30x系列ADC源码 [1]adc_reg.h [参考] [2]ctrl_adc.h [重点] [3]gd32f30x_dma_reg.h [参考] [4]mon_adc.h [参考 +1] ...

最新文章

  1. mysql 游标的使用
  2. Shell脚本入门基础
  3. CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数
  4. java jedis sadd_Java实现Redis的集合(set)命令操作
  5. TreeMap实现对中文的排序
  6. 程序员的职业选择,你应该知道的,持续更新ing
  7. python列表心得_Python学习心得(第一篇:字符串、列表等)
  8. JAVA生产者消费者的实现
  9. 荣耀手机安装谷歌框架_华为荣耀9青春版安装谷歌框架 无需Root 华为荣耀手机安装谷歌框架...
  10. 虚拟机ubuntu的联网方法(NET)
  11. python椭圆曲线加密信息_ECC椭圆曲线加密算法:ECDH 和 ECDSA
  12. html表格制作练习
  13. 内存超频对游戏提升大吗 玩游戏有必要超频吗
  14. matlab y 0,用MATLAB算y-2y-3y=0的解
  15. STM32L431 立即睡眠模式(代码+讲解)
  16. CPU 100%排查及常见案例
  17. 一级计算机的分类汇总在哪里,在Excel工作表的数据列表中插入分类汇总
  18. Mac系统重装 “未能安装在您的电脑上 没有符合安装资格的软件包” 具体解决方案
  19. 读博的选择,读博,还是不读博?
  20. 创业不是人干的活 是阿猫阿狗干的活

热门文章

  1. ruby 正则表达式 使用正负预查
  2. 解析软件测试需要变革的因素
  3. 我与前端 | 因兴趣起源
  4. WebServices中使用cxf开发日志拦截器以及自定义拦截器
  5. 创建租房网House脚本
  6. C语言复杂的学生成绩管理系统,哭诉、拜求C语言学生成绩管理系统
  7. Chipseq数据库的建立
  8. Codeforces Round #504 E - Down or Right 交互题
  9. JS定时器和单线程异步特性
  10. 用shell脚本守护后台进程