Entity FrameWork 365日系列文章源码研究 (1)
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)相关推荐
- 一起谈.NET技术,.NET Framework源码研究系列之---万法归宗Object
经过前面三篇关于.NET Framework源码研究系列的随笔,相信大家都发现其实.NET Framework的实现其实并不复杂,也许跟我们自己做的项目开发差不多.本人也是这样的看法.不过,经过仔细深 ...
- .NET Framework源码研究系列之---万法归宗Object
原文地址:http://www.cnblogs.com/niyw/archive/2010/07/28/1787358.html 经过前面三篇关于.NET Framework源码研究系列的随笔,相信大 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)(转)
阅读目录 一.MVC原理解析 1.MVC原理 二.HttpHandler 1.HttpHandler.IHttpHandler.MvcHandler的说明 2.IHttpHandler解析 3.Mvc ...
- MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...
- 分享106个ASP新闻文章源码,总有一款适合您
分享106个ASP新闻文章源码,总有一款适合您 106个ASP新闻文章源码下载链接:https://pan.baidu.com/s/143-M0-nwEaUNwGyfFV4Hjw?pwd=af8r ...
- wp实例开发精品文章源码推荐
qianqianlianmeng wp实例开发精品文章源码推荐 WP8 启动媒体应用 这个示例演示了如何选择正确的msAudioCategory类别的音像(AV)流来配置它作为一个音频 ...
- 转载:ADO.NET Entity Framework 试水系列索引(2008/9/9更新,本系列结束)
Visual Studio 2008发布时,微软给我们带来了LinQ to SQL,解决所谓"阻抗不匹配"问题.最近,随着Visual Studio 2008 SP1的正式发布,又 ...
- Entity Framework 5.0系列之Code First数据库迁移
我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Cod ...
- GD32F30x系列ADC源码,对初学者参考价值巨大,(非常详细篇)万字源码
GD32F30x系列ADC源码 [1]adc_reg.h [参考] [2]ctrl_adc.h [重点] [3]gd32f30x_dma_reg.h [参考] [4]mon_adc.h [参考 +1] ...
最新文章
- mysql 游标的使用
- Shell脚本入门基础
- CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数
- java jedis sadd_Java实现Redis的集合(set)命令操作
- TreeMap实现对中文的排序
- 程序员的职业选择,你应该知道的,持续更新ing
- python列表心得_Python学习心得(第一篇:字符串、列表等)
- JAVA生产者消费者的实现
- 荣耀手机安装谷歌框架_华为荣耀9青春版安装谷歌框架 无需Root 华为荣耀手机安装谷歌框架...
- 虚拟机ubuntu的联网方法(NET)
- python椭圆曲线加密信息_ECC椭圆曲线加密算法:ECDH 和 ECDSA
- html表格制作练习
- 内存超频对游戏提升大吗 玩游戏有必要超频吗
- matlab y 0,用MATLAB算y-2y-3y=0的解
- STM32L431 立即睡眠模式(代码+讲解)
- CPU 100%排查及常见案例
- 一级计算机的分类汇总在哪里,在Excel工作表的数据列表中插入分类汇总
- Mac系统重装 “未能安装在您的电脑上 没有符合安装资格的软件包” 具体解决方案
- 读博的选择,读博,还是不读博?
- 创业不是人干的活 是阿猫阿狗干的活