重写、重载和隐藏

2019-07-29
阅读 2 分钟
1.3k
重写、重载和隐藏是经常在开发中用到的知识点,今天我们在这里来讲一下他们三个的区别。 零、重写 所谓重写,就是在继承中,子类重新定义父类的方法,这里需要注意的是: 必须在有继承关系的类中重写; 子类重写的方法名和参数列表必须与父类的方法名和参数列表一致; 父类方法用 virtual 修饰; 子类方法用 override 修...

通俗易懂的ref和out区别

2019-07-29
阅读 2 分钟
9.6k
ref 和 out 是C#开发中经常用到的两个关键字,但是很多人没有搞清楚这两个关键字的具体区别,下面我们来说一下这两个关键的区别。 零、 ref 与 out 的异同 相同: 都是按地址传递; 使用后都将改变原来参数的值; 编译时处理方式相同; 属性不能作为参数传递。 不同: ref 将参数值传进方法, out 无法将参数值传入方法...

Entity Framework 迁移

2019-07-29
阅读 1 分钟
1.8k
这一篇文章主要讲解EF的迁移,我们前面的文章一直是使用新增数据的方式生成数据库,但是在实际开发过程中,我们会使用代码迁移的方式生成数据库,下面我们来讲解一下代码迁移。

Entity Framework 继承映射

2019-07-29
阅读 2 分钟
2.1k
继承是面向对象开发时经常用到的,但是SQL Server 数据库不具备继承,那么怎么办能?我们可以利用如下三种方法: TPH(Table per Hierachy):对SQL架构进行非规范化来表示多态,使用鉴别列对类型区分; TPT(Table per Type):用外键表示继承关系 TPC(Table per Concete class):完全丢弃多态和继承 零、TPH TPH是将...

Entity Framework 私有属性映射

2019-07-29
阅读 2 分钟
1.6k
这篇文章纯属自娱自乐,因为在实际开发中用到私有化属性映射的可能性几乎为0。在EF中默认映射的是具有 public 修饰符的属性,但是如果是 internal 、 private 和 protected 修饰的属性要映射进数据库怎么做呢?下面我们分别来讲解一下。

Entity Framework 小知识(五)

2019-07-29
阅读 2 分钟
1.2k
在 多对多关系映射 中关联表是EF自动生成的。但有时候我们需要显示定义关联表。我们可以按照如下步骤定义(继续使用多对多关系映射这篇文章饿代码):

Entity Framework 实体状态

2019-07-29
阅读 2 分钟
2k
从今天开始我们开始讲解EF中的实体状态和数据操作,这篇文章先讲解实体状态。我们通过前面的学习,知道EF通过上下位负责跟踪实体的状态,实体状态的位置是在命名空间 System.Dat.Entity 里的 EntityState,具体状态有如下5种:

Entity Framework 多对多映射

2019-07-29
阅读 4 分钟
2.2k
上一篇文章我们讲解了EF中的一对对多的关系映射,这篇文章我们讲解EF中的多对多(Many-to-Many Relationship)关系映射。这篇文章我们同样通过一个简单的例子来讲解多对多的关系映射。

Entity Framework 一对一关系映射

2019-07-29
阅读 4 分钟
2k
一对一关系是Entity Framework 中很复杂的关系,涉及了 HasOptional 、WithRequired 、 WithOptionalPrincipal 、 WithOptionalDependent。这篇文章我们将具体讲解这几个的用法。

控制反转_依赖注入简明教程

2019-07-01
阅读 2 分钟
2.5k
Ioc 英文是 Inversion of Control,中文是控制反转。所谓控制反转,就是A类中有对B类方法的调用,我们调用之前一般都会先new,这样就增加了类和类之间的耦合度。为了降低耦合度,将A类对B类的的控制权交给Ioc容器,让双方都依赖Ioc容器。

Entity Framework 一对多关系映射

2019-07-01
阅读 3 分钟
2.2k
EF中关系映射也是一个很关键的内容,关系映射和属性映射一样,也是在 OnModelCreating 中配置映射。EF中的关系映射有如下三种:

C# 三个Timer

2019-07-01
阅读 3 分钟
5.6k
在C#中存在3种常用的 Timer : System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer 零、System.Windows.Forms.Timer 这个 Timer 是单线程的,也就是说只要它运行,其他线程就要等着。 这个 Timer 有如下特点: 完全基于UI线程,定时器触发时,操作系统把定时器消息插入线程消息队列中,调用线程执...

Entity Framework 小知识(四)

2019-06-18
阅读 1 分钟
1.1k
在EF中并没有提供包含索引和过滤索引的创建方法,那么我们就么发创建了吗?答案是否定的,我们可以通过迁移类进行创建包含索引和过滤索引。首先我们通过 Add-Migration 命令创建一个空的迁移类,然后在 Up方法中输入如下代码:

Entity Framework 索引

2019-06-17
阅读 2 分钟
1.7k
Entity Framwework 6 设置和使用索引,是一个比较 egg 疼的事情,为什么这么说呢?因为Entity Framwework 6的不同版本有不同的设置和使用方法,按照版本来划分,有三种方法:

Entity Framework 小知识(三)

2019-06-14
阅读 1 分钟
1.3k
在单服务器上运行的站点,为了防止出现脏读现象,我们一般使用Lock语句关键字,但是如果在分布式站点上使用Lock语句关键字是不起作用的,因为程序锁住了服务器1数据库实例,但服务器2并不知道服务器1已被锁住,这样依然会出现脏读现象。这时我们就用到了EF的乐观并发。

Entity Framework复杂类型属性映射

2019-06-13
阅读 4 分钟
1.6k
以上代码在ORM中称为组合类,EF会将这两个类映射在一张表中。当Code First发现不能推断出类的主键,并且没有通过Data Annotations或Fluent API注册主键,那么该类型将被自动注册为复杂类型。

Entity Framewor简单属性映射

2019-06-13
阅读 2 分钟
1.6k
默认情况下可以不配置表名,我们的模型名称将会作为数据库的表名。但是大部分项目会要求数据库表名称的规范,例如我们要将模型 User 在数据库中映射为 Users,那么我们可以这么做,在派生类上下文中的 OnModelCreating 中进行如下定义:

Entity Framework 约定

2019-06-13
阅读 5 分钟
1.3k
约定,类似于接口,是一个规范和规则,使用Code First 定义约定来配置模型和规则。在这里约定只是记本规则,我们可以通过Data Annotaion或者Fluent API来进一步配置模型。约定的形式有如下几种:

Entity Framework 小知识(二)

2019-06-13
阅读 2 分钟
1.4k
零、基于代码配置 基于代码配置是EF6新增的一个特性,操作步骤如下: 创建DbConfig派生类; 配置默认连接工厂; 设置Database Provider; 设置数据库初始化器; 1. 创建DbConfig派生类 {代码...} 接下来使用 DbConfigurationType 属性在上下文类中设置基于代码的配置类: {代码...} 2. 配置默认连接工厂 使用 SetDefault...

Entity Framework 小知识(一)

2019-05-17
阅读 1 分钟
1.4k
上一节我们演示的是在数据库不存在的情况下操作数据库的方法,但是某些情况下数据库是已经存在的(例如:对已有系统的升级改造扩展、DBA已经将数据库提前创建等等)。那么这种情况下我们该怎么办呢?这时我们就用到了EF数据库初始化的三种策略。这三种策略如下:

Entity Framework初体验

2019-05-13
阅读 2 分钟
1.4k
零、初体验 新建控制台程序,名称为:MyFirstEF 在NuGet中搜索 Entity Framework,如下图: 创建 Blog 类: {代码...} 创建一个继承自EF上下文的类,此上下文是与数据库交互的一个中间桥梁,我们可以称之为会话,并且为每一个模型公开一个DbSet: {代码...} 注:上下文派生类中定义DbSet有如下三种方式: {代码...} 在主...

Entity Framework简介

2019-05-11
阅读 1 分钟
1.9k
Entity Framework (简称EF),是.NET的 Object/Relational Mapping 实体框架(简称ORM),可以在 SQL Server、MySQL、Oracle、等数据库上使用。可以将数据作为业务对象和实体进行操作,使用LINQ进行查询,使用C#进行操作和检索。