随笔分类 -  Entity Framework

摘要:一、主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组是能唯一标识一条记录,该属性组就可以称为主键。例如: 学生版(学号、姓名、性别、班级) 其中每个学生的学号是唯一的,学号就是一个主键。 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键。 成绩表(学 阅读全文
posted @ 2018-05-25 00:37 .NET开发菜鸟 阅读(1906) 评论(1) 推荐(1) 编辑
摘要:在上一篇文章中,我们讲解了使用EF实现简单的增删改成,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查。 一、修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询出来要修改的数据,然后在修改。但是这种操作会导致多次操作数据库: 从上面的截图中可以看出,查询数据的 阅读全文
posted @ 2018-05-24 22:56 .NET开发菜鸟 阅读(1972) 评论(0) 推荐(1) 编辑
摘要:在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查 一、新增数据 新增一个Student,代码如下: 在Main()方法里面调用Add()方法,结果: 查看数据库结果: 从上面的两个截图中可以看出数据新增成功。 二、查询数据 查询Stu 阅读全文
posted @ 2018-05-24 01:07 .NET开发菜鸟 阅读(607) 评论(0) 推荐(0) 编辑
摘要:在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查 一、新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型: 然后点击添加 二、选择来自数据库的EF设计器,并点击下一步 三、在实体数据模型向导界面选择要使用的数据连接,或者点击新建连接按钮创建新的连接,这里选择已有 阅读全文
posted @ 2018-05-24 00:22 .NET开发菜鸟 阅读(573) 评论(0) 推荐(0) 编辑
摘要:一、什么是事务 处理以数据为中心的应用时,另一个重要的话题是事务管理。ADO.NET为事务管理提供了一个非常干净和有效的API。因为EF运行在ADO.NET之上,所以EF可以使用ADO.NET的事务管理功能。 当从数据库角度谈论事务时,它意味着一系列操作被当作一个不可分割的操作。所有的操作要么全部成 阅读全文
posted @ 2017-12-22 10:31 .NET开发菜鸟 阅读(547) 评论(0) 推荐(0) 编辑
摘要:理解并发 并发管理解决的是允许多个实体同时更新,实际上这意味着允许多个用户同时在相同的数据上执行多个数据库操作。并发是在一个数据库上管理多个操作的一种方式,同时遵守了数据库操作的ACID属性(原子性、一致性、隔离性和持久性)。 想象一下下面几种可能发生并发的场景: 1、用户甲和乙都尝试修改相同的实体 阅读全文
posted @ 2017-12-20 20:35 .NET开发菜鸟 阅读(537) 评论(0) 推荐(0) 编辑
摘要:在EF中使用存储过程和使用视图是很相似的,一般会使用Database对象上的两个方法:SqlQuery和ExecuteSqlCommand。为了从存储过程中读取很多数据行,我们只需要定义一个类,我们会将检索到的所有数据行物质化到该类实例的集合中。比如,从下面的存储过程读取数据: 1、定义实体类 Bo 阅读全文
posted @ 2017-12-19 20:07 .NET开发菜鸟 阅读(495) 评论(0) 推荐(0) 编辑
摘要:一、什么是视图 视图在RDBMS(关系型数据库管理系统)中扮演了一个重要的角色,它是将多个表的数据联结成一种看起来像是一张表的结构,但是没有提供持久化。因此,可以将视图看成是一个原生表数据顶层的一个抽象。例如,我们可以使用视图提供不同安全的级别,也可以简化必须编写的查询,尤其是我们可以在代码中的多个 阅读全文
posted @ 2017-12-19 15:01 .NET开发菜鸟 阅读(2582) 评论(0) 推荐(0) 编辑
摘要:Entity Framework允许控制对象之间的关系,在使用EF的过程中,很多时候我们会进行查询的操作,当我们进行查询的时候,哪些数据会被加载到内存中呢?所有的数据都需要吗?在一些场合可能有意义,例如:当查询的实体仅仅拥有一个相关的子实体时可以加载所有的数据到内存中。但是,在多数情况下,你可能并不 阅读全文
posted @ 2017-12-18 09:48 .NET开发菜鸟 阅读(366) 评论(0) 推荐(0) 编辑
摘要:一、什么是LINQ TO EntitiesLINQ,全称是Language-INtegrated Query(集成语言查询),是.NET语言中查询数据的一种技术。LINQ to Entities是一种机制,它促进了使用LINQ对概念模型的查询。 因为LINQ是声明式语言,它让我们聚焦于我们需要什么数 阅读全文
posted @ 2017-12-15 23:29 .NET开发菜鸟 阅读(1647) 评论(0) 推荐(0) 编辑
摘要:Entity Framework的Code First模式有三种实体继承模式 1、Table per Type (TPT)继承 2、Table per Class Hierarchy(TPH)继承 3、Table per Concrete Class (TPC)继承 一、TPT继承模式 当领域实体类 阅读全文
posted @ 2017-12-15 09:26 .NET开发菜鸟 阅读(1977) 评论(0) 推荐(0) 编辑
摘要:一、管理数据库连接 1、使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名。比如,我们的数据库上下文定义如下: 在配置文件中定义的连接字符串如下 阅读全文
posted @ 2017-12-14 22:58 .NET开发菜鸟 阅读(824) 评论(0) 推荐(0) 编辑
摘要:使用Entity Framework的Code First模式在进行数据迁移的时候会遇到一些问题,熟记一些常用的命令很重要,下面整理出了数据迁移时常用的一些命令。 一、模型设计 EF默认使用id字段作为主键,如果没有,则需要指定主键。 二、数据迁移基本命令和常用参数 1、安装Entity Frame 阅读全文
posted @ 2017-12-09 14:34 .NET开发菜鸟 阅读(644) 评论(0) 推荐(0) 编辑
摘要:错误信息: “System.Data.Entity.Core.EntityCommandExecutionException”类型的异常在 EntityFramework.SqlServer.dll 中发生,但未在用户代码中进行处理。 其他信息:执行命令定义时出错。有关详细信息,请参阅内部异常。 跟 阅读全文
posted @ 2017-12-09 13:55 .NET开发菜鸟 阅读(8558) 评论(0) 推荐(0) 编辑
摘要:一、概念 表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表。 Photograph实体结构: 2、PhotographFullImage实体结构: 3、创建数据上下文对象子类: 4、使用数据迁移生成数据库结构,查看 阅读全文
posted @ 2017-12-09 09:46 .NET开发菜鸟 阅读(505) 评论(0) 推荐(0) 编辑
摘要:一、概念 实体拆分:一个实体拆分成多个表,如Product实体,可以拆分成Product和ProductWebInfo两个表,Product表用于存储商品的字符类信息,ProductWebInfo用于存储商品的图片信息,两张表通过SKU进行关联。 1、Product实体类结构: 2、数据实体类结构: 阅读全文
posted @ 2017-12-08 22:10 .NET开发菜鸟 阅读(405) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,简单的介绍了使用Fluent API如何管理一对一的实体关系,在这篇文章中,接着介绍Fluent API如何管理一对多的实体关系。 要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent API来显式创建关系。接下来使用捐赠者Donator和支付方法Pay 阅读全文
posted @ 2017-12-08 20:12 .NET开发菜鸟 阅读(448) 评论(0) 推荐(0) 编辑
摘要:我们现在已经知道如何使用Code First来定义简单的领域类,并且如何使用DbContext类来执行数据库操作。现在我们来看下数据库理论中的多样性关系,我们会使用Code First来实现下面的几种关系: 1、一对一关系: one to one 2、一对多关系: one to many 3、多对多 阅读全文
posted @ 2017-12-02 21:59 .NET开发菜鸟 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:一、配置主键 要显式将某个属性设置为主键,可使用 HasKey 方法。在以下示例中,使用了 HasKey 方法对 Product 类型配置 ProductId 主键。 1、新加Product类 2、新建ProductMap类,用来设置主键 3、查看数据库 二、配置复合主键 以下示例配置要作为Depa 阅读全文
posted @ 2017-11-30 15:26 .NET开发菜鸟 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:在前面的几篇文章中,简单的介绍了如何使用Entity Framework的Code First模式创建数据库,但是,在前面的几篇文章中,我们都是通过使用数据库初始化策略来做,也就是每次先删除数据库然后在创建,这样才能把新增加的字段信息更新到数据库,在测试的时候可以做,但是在正式的生产环境中就不能使用 阅读全文
posted @ 2017-11-28 23:22 .NET开发菜鸟 阅读(5002) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示