Entity Framework
懒笔头
这个作者很懒,什么都没留下…
展开
-
Entity Framework开发介绍
一、Entity Framework概要 Entity Framework是微软的Object Relational Mapper(对象关系映射),也就是我们平常说的ORM,它可以让应用程序开发者将关系型数据作为业务模型来使用,也消除了开发者为数据访问编写的绝大多数管道代码的需要(比如使用ADO.NET)。Entity Framework提供了一个综合的、基于模型的系统,通过摆脱为...原创 2019-10-17 11:33:27 · 154 阅读 · 0 评论 -
使用ADO.NET实体数据模型
前景:要操作的数据表必须添加主键(方式:进入数据库-->数据表名-->设计-->列名右键-->设置主键)1)、项目名右键-->新建项-->ADO.NET数据模型选择第一个“来自数据库的EF设计器”就行2)、操作数据表的增删改查这个对象可以声明成全局的上下文StudentEntities dbContext = new Studen...转载 2019-10-11 15:39:31 · 1823 阅读 · 0 评论 -
Entity Framework应用:导航属性
一、主键和外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组是能唯一标识一条记录,该属性组就可以称为主键。例如:学生版(学号、姓名、性别、班级)其中每个学生的学号是唯一的,学号就是一个主键。课程表(课程编号,课程名,学分)其中课程编号是唯一的,课程编号就是一个主键。成绩表(学号、课程号、成绩)成绩表中单独的一个属性无法唯一标识一条记录,学号和课程号的组合才能...转载 2019-10-17 11:07:55 · 386 阅读 · 0 评论 -
Entity Framework应用:根据实体的EntityState状态实现增删改查
在上一篇文章中,我们讲解了使用EF实现简单的增删改成,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查。一、修改数据上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询出来要修改的数据,然后在修改。但是这种操作会导致多次操作数据库:查询数据的时候会执行一次事物,修改的时候又执行了一次事物,即修改数据会操作两次数据库。那么有没有什么方法可以只操作一次数据库呢?...转载 2019-10-17 10:52:54 · 255 阅读 · 0 评论 -
Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查
在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查一、新增数据新增一个Student,代码如下:static void Add(){ using (StudentSystemEntities dbContext = new StudentSystemEntities()) { ...转载 2019-10-17 10:45:31 · 144 阅读 · 0 评论 -
Entity Framework应用:EntityFramework DataBase First模式
在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查一、新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型:然后点击添加二、选择来自数据库的EF设计器,并点击下一步三、在实体数据模型向导界面选择要使用的数据连接,或者点击新建连接按钮创建新的连接,这里选择已有的连接,并点击下一步:四、选择实体框架6.0,点击下一步:...转载 2019-10-17 10:42:23 · 174 阅读 · 0 评论 -
Entity Framework应用:使用Code First模式管理事务
一、什么是事务处理以数据为中心的应用时,另一个重要的话题是事务管理。ADO.NET为事务管理提供了一个非常干净和有效的API。因为EF运行在ADO.NET之上,所以EF可以使用ADO.NET的事务管理功能。当从数据库角度谈论事务时,它意味着一系列操作被当作一个不可分割的操作。所有的操作要么全部成功,要么全部失败。事务的概念是...转载 2019-10-17 10:34:20 · 101 阅读 · 0 评论 -
Entity Framework应用:管理并发
理解并发并发管理解决的是允许多个实体同时更新,实际上这意味着允许多个用户同时在相同的数据上执行多个数据库操作。并发是在一个数据库上管理多个操作的一种方式,同时遵守了数据库操作的ACID属性(原子性、一致性、隔离性和持久性)。想象一下下面几种可能发生并发的场景:1、用户甲和乙都尝试修改相同的实体。2、用户甲和乙都尝试删除相同的实体。3、用户甲正在尝试修改一个实体时,用户乙已经删除...转载 2019-10-17 10:22:19 · 102 阅读 · 0 评论 -
Entity Framework应用:使用Code First模式管理视图
一、什么是视图视图在RDBMS(关系型数据库管理系统)中扮演了一个重要的角色,它是将多个表的数据联结成一种看起来像是一张表的结构,但是没有提供持久化。因此,可以将视图看成是一个原生表数据顶层的一个抽象。例如,我们可以使用视图提供不同安全的级别,也可以简化必须编写的查询,尤其是我们可以在代码中的多个地方频繁地访问使用视图定义的数据。EF Code First模式现在还不完全支持视图,因此我们必须...转载 2019-10-17 10:03:58 · 397 阅读 · 0 评论 -
Entity Framework应用:Loading Entities
Entity Framework允许控制对象之间的关系,在使用EF的过程中,很多时候我们会进行查询的操作,当我们进行查询的时候,哪些数据会被加载到内存中呢?所有的数据都需要吗?在一些场合可能有意义,例如:当查询的实体仅仅拥有一个相关的子实体时可以加载所有的数据到内存中。但是,在多数情况下,你可能并不需要加载全部的数据, 而是只要加载一部分的数据即可。默认情况下,EF仅仅加载查询中涉...转载 2019-10-16 15:19:06 · 146 阅读 · 0 评论 -
Entity Framework应用:使用LINQ操作
一、什么是LINQ TO EntitiesLINQ,全称是Language-INtegrated Query(集成语言查询),是.NET语言中查询数据的一种技术。LINQ to Entities是一种机制,它促进了使用LINQ对概念模型的查询。因为LINQ是声明式语言,它让我们聚焦于我们需要什么数据而不是应该如何检索数据。LINQ to Entities在实体数据模型之上提供了一个很好的抽象...转载 2019-10-16 14:58:29 · 475 阅读 · 0 评论 -
Entity Framework应用:Code First的实体继承模式
Entity Framework的Code First模式有三种实体继承模式1、Table per Type (TPT)继承2、Table per Class Hierarchy(TPH)继承3、Table per Concrete Class (TPC)继承一、TPT继承模式当领域实体类有继承关系时,TPT继承很有用,我们想把这些实体类模型持久化到数据库中,这样,每个领域实体...转载 2019-10-16 11:51:32 · 185 阅读 · 0 评论 -
Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据
一、管理数据库连接1、使用配置文件管理连接之约定在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名。比如,我们的数据库上下文定义如下:using System;using System.Colle...转载 2019-10-16 11:32:22 · 172 阅读 · 0 评论 -
Entity Framework应用:Code First模式数据迁移的基本用法
使用Entity Framework的Code First模式在进行数据迁移的时候会遇到一些问题,熟记一些常用的命令很重要,下面整理出了数据迁移时常用的一些命令。一、模型设计EF默认使用id字段作为主键,如果没有,则需要指定主键。二、数据迁移基本命令和常用参数1、安装Entity Framework a、使用命令安装:visual studio工具栏->工具-&g...转载 2019-10-16 10:55:00 · 148 阅读 · 0 评论 -
Entity Framework优化一
错误信息:“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常在 EntityFramework.SqlServer.dll 中发生,但未在用户代码中进行处理。其他信息:执行命令定义时出错。有关详细信息,请参阅内部异常。跟踪代码找到详细信息:Entity Framework已有打开的与此Command相关联...转载 2019-10-16 10:52:36 · 103 阅读 · 0 评论 -
Entity Framework表拆分
一、概念表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表。Photograph实体结构:using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System....转载 2019-10-16 10:47:59 · 254 阅读 · 0 评论 -
Entity Framework实体拆分
一、概念实体拆分:一个实体拆分成多个表,如Product实体,可以拆分成Product和ProductWebInfo两个表,Product表用于存储商品的字符类信息,ProductWebInfo用于存储商品的图片信息,两张表通过SKU进行关联。1、Product实体类结构:using System;using System.Collections.Generic;using Sy...转载 2019-10-16 10:43:19 · 153 阅读 · 0 评论 -
Entity Framework管理实体关系(二):管理一对二关系
在上一篇文章中,简单的介绍了使用Fluent API如何管理一对一的实体关系,在这篇文章中,接着介绍Fluent API如何管理一对多的实体关系。要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent API来显式创建关系。接下来使用捐赠者Donator和支付方法PayWay这两个类来举例子,这里的一对多关系是:一个人可以通过多种支付方式赞助我。支付方式类P...转载 2019-10-16 10:28:28 · 110 阅读 · 0 评论 -
Entity Framework管理实体关系(一):管理一对一关系
我们现在已经知道如何使用Code First来定义简单的领域类,并且如何使用DbContext类来执行数据库操作。现在我们来看下数据库理论中的多样性关系,我们会使用Code First来实现下面的几种关系:1、一对一关系: one to one2、一对多关系: one to many3、多对多关系::many to many首先要明确关系的概念。关系就是定义两个或多个对象之间是如何...转载 2019-10-16 10:09:48 · 298 阅读 · 0 评论 -
Entity Framework(七):Fluent API配置案例
一、配置主键要显式将某个属性设置为主键,可使用 HasKey 方法。在以下示例中,使用了 HasKey 方法对 Product 类型配置 ProductId 主键。1、新加Product类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System....转载 2019-10-15 14:17:06 · 318 阅读 · 0 评论 -
Entity Framework(六):数据迁移
在前面的几篇文章中,简单的介绍了如何使用Entity Framework的Code First模式创建数据库,但是,在前面的几篇文章中,我们都是通过使用数据库初始化策略来做,也就是每次先删除数据库然后在创建,这样才能把新增加的字段信息更新到数据库,在测试的时候可以做,但是在正式的生产环境中就不能使用这种方式了,那么我们如何做才能在原有的数据库基础上进行字段的增删,这就需要使用到EF的数据迁移技...转载 2019-10-15 14:04:26 · 556 阅读 · 0 评论 -
Entity Framework(五):使用配置伙伴创建数据库
在上一篇文章中讲了如何使用fluent API来创建数据表,不知道你有没有注意到一个问题。上面的OnModelCreating方法中,我们只配置了一个类Product,也许代码不是很多,但也不算很少,如果我们有1000个类怎么办?都写在这一个方法中肯定不好维护。EF提供了另一种方式来解决这个问题,那就是为每个实体类单独创建一个配置类。然后在OnModelCreating方法中调用这些配置伙伴类。...转载 2019-10-15 12:01:42 · 115 阅读 · 0 评论 -
Entity Framework(四):使用DbModelBuilder API创建表结构
DbContext类有一个OnModelCreating方法,它用于流利地配置领域类到数据库模式的映射。下面我们以fluent API的方式来定义映射。首先,先将Product类注释掉,重新编写该类,重新编写后的Product类:using System;using System.Collections.Generic;using System.Linq;using System.T...转载 2019-10-15 11:58:10 · 1673 阅读 · 0 评论 -
Entity Framework(三):使用特性(数据注解)创建表结构
一、理解Code First及其约定和配置 传统设计应用的方式都是由下而上的,即我们习惯优先考虑数据库,然后使用这个以数据为中心的方法在数据之上构建应用程序。这种方法非常适合于数据密集的应用或者数据库很可能包含多个应用使用的业务逻辑的应用。对于这种应用,如果要使用EF的话,我们必须使用Database First方式。 设计应用的另一种方法就是以领域为中心的方式(领域驱动设计DDD)。D...转载 2019-10-15 11:54:06 · 329 阅读 · 0 评论 -
EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数据库表名为复数形式,那么应该如何来控制呢?当我们想要自定义一些数据库表的生成规则的时候,会重写OnModelCreating()方法,控制生成的表名的单复数形式同样可以在这个方法中完成,实现代码如下:using...转载 2019-10-15 10:10:06 · 151 阅读 · 0 评论 -
Entity Framework中的实体类添加复合主键
使用Code First模式实现给实体类添加复合主键,代码如下:using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;using System.Linq;u...转载 2019-10-15 10:08:07 · 749 阅读 · 0 评论 -
EF应用一:Code First模式
F的核心程序集位于System.Data.Entity.dll和System.Data.EntityFramework.dll中。支持CodeFirst的位于EntityFramework.dll中。通常使用NuGet Package Manager来添加这些程序集。如果没有数据库:1、先写代码,自动创建数据库。2、如果代码有变化,自动删除数据库重建,或者是使用迁移功...转载 2019-10-14 16:56:28 · 233 阅读 · 0 评论 -
EF常用查询语句
//方法一 Linq to Entities var info = from p in entity.Users where p.ID >= 10 orderby p.ID descending select p; foreach (var item in info) { Consol...转载 2019-10-14 16:45:03 · 916 阅读 · 0 评论 -
在EF中执行SQL语句
一、为什么要在EF中执行SQL语句 使用EF操作数据库,可以避免写SQL语句,完成使用Linq实现,但为什么还要在EF中执行SQL语句呢。如果要写SQL语句,完全可以使用ADO.NET来操作数据库。这样说虽然没错,可是有些时候使用EF操作数据库还是有一些不方便的地方,例如:如果要修改某一条记录,按照EF的正常流程走,需要先把要修改的数据查询出来,然后在去修改,这样不仅麻烦而且性能也低,这时直接...转载 2019-10-14 16:44:12 · 351 阅读 · 0 评论 -
Entity Framework开发介绍
一、Entity Framework概要 Entity Framework是微软的Object Relational Mapper(对象关系映射),也就是我们平常说的ORM,它可以让应用程序开发者将关系型数据作为业务模型来使用,也消除了开发者为数据访问编写的绝大多数管道代码的需要(比如使用ADO.NET)。Entity Framework提供了一个综合的、基于模型的系统,通过摆脱为...转载 2019-10-14 16:36:56 · 255 阅读 · 0 评论