05 2018 档案
摘要:一、什么是特性 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 特性(Attribute)用于添加元数据,如编译器指
阅读全文
摘要:一、委托 1、什么是委托 委托是面向对象的、类型安全的,是引用类型。使用delegate关键字进行定义。委托的本质就是一个类,继承自System.MulticastDelegate,而它又派生自System.Delegate。里面内置了几个方法 ,可以在类的外面声明委托,也可以在类的内部声明委托。
阅读全文
摘要:一、主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组是能唯一标识一条记录,该属性组就可以称为主键。例如: 学生版(学号、姓名、性别、班级) 其中每个学生的学号是唯一的,学号就是一个主键。 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键。 成绩表(学
阅读全文
摘要:在上一篇文章中,我们讲解了使用EF实现简单的增删改成,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查。 一、修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询出来要修改的数据,然后在修改。但是这种操作会导致多次操作数据库: 从上面的截图中可以看出,查询数据的
阅读全文
摘要:在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查 一、新增数据 新增一个Student,代码如下: 在Main()方法里面调用Add()方法,结果: 查看数据库结果: 从上面的两个截图中可以看出数据新增成功。 二、查询数据 查询Stu
阅读全文
摘要:在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查 一、新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型: 然后点击添加 二、选择来自数据库的EF设计器,并点击下一步 三、在实体数据模型向导界面选择要使用的数据连接,或者点击新建连接按钮创建新的连接,这里选择已有
阅读全文
摘要:dapper除了支持基础的CURD、存储过程以外,还支持操作函数和事物。 dapper操作函数的代码如下: dapper支持事物的代码如下: Dapper除了支持Transaction以外,还支持Transactionscope:
阅读全文
摘要:一、什么是单元测试单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期。单元测试的代码与实际程序的代码具有同等的重要性。每一个单元测试,都是用来定向测试它所对应的一个单元的代码是否正确执行(一般只的是对方法的测试)。单元测试应该由被测试代码的编写者来完成(即程序员自
阅读全文
摘要:一、什么是IOC 学习IOC之前先来了解一个依赖导致原则(DIP),依赖导致原则是IOC的核心原理。 依赖导致:即上层模块不应该依赖于低层模块,二者应该通过抽象来依赖。依赖于抽象,而不是依赖于细节。 首先来看下面的例子: 1、定义一个接口,封装数据库的基本CRUD操作,接口定义如下: 2、定义一个M
阅读全文
摘要:我们平常在程序里面为了捕获异常,会加上try-catch-finally代码,但是这样会使得程序代码看起来很庞大,在MVC中我们可以使用异常过滤器来捕获程序中的异常,如下图所示: 使用了异常过滤器以后,我们就不需要在Action方法里面写Try -Catch-Finally这样的异常处理代码了,而把
阅读全文
摘要:缓存过滤器用来输出页面缓存,其用法如下图所示: 注意: Duration:表示缓存多少秒;VaryByParam:表示缓存是否随地址参数而改变。OutputCache除了可以定义在Action方法上面以外,还可以定义在控制器上面。 演示示例: 新建一个MVC应用程序,添加一个名为Cache的控制器,
阅读全文