Entity Framework 三】的更多相关文章

前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对于程序员没有哪种模式最好,只有哪种模式更适合.接下来我将分别使用这三种开发模式实现同一数据库模型的数据持久化功能.希望通过实践能帮助你找到更适合你的开发模式 Database First Database First开发模式指以数据库设计为基础,并根据数据库自动生成实体数据模型,从而驱动整个开发流程…
DbContext:上下文 EDM将生成从System.Data.Entity.DbContext类派生的SchoolDBEntities类,如下所示.派生DbContext的类在实体框架中被称为上下文类. 在EntityFramework 4.1之前,EDM用于生成从ObjectContext类派生的上下文类.使用ObjectContext有点棘手.DbContext在概念上与ObjectContext相似. 它是ObjectContext的一个包装器,在所有的开发模型中都是有用的:Code…
在忙碌中渡过了5,6,7 月份,现在些抽点时间对Entity Framework的使用做一些基础的回忆. Entity Framework 是什么? Entity Framework(EF)和我们所熟悉的ADO.NET差不多,都提供对数据库访问和操作的对象,不过各自也有所不同之处. ADO.NET提供了一套对底层数据库操作的对象模型,抽象层次较底,操作效率和性能较高,是日常开发中访问数据库常用方式. EF的抽象层次较高:它把数据库映射为DbContext,把数据库对象都转换成应用程序对象 (en…
离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 Audit 第二篇 Entity Framework Plus 之 Query Future 计划还会写两篇,一篇是关于查询缓存的(二级缓存),一篇是批量操作(只讲更新,删除). 今天写查询缓存,标题 第三篇 Entity Framework Plus 之 Query Cache  ,废话不多说,直接…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体数据模型,一般来说,有三种方式: 1.LINQ to Entities; 2.Entity SQL; 3.Native SQL; 我们将在本章演示这三种方式,为了帮助你理解实体框架查询的基本知识,本章覆盖了常见和不常见的场景.同时我们也展示了实体框架6新的查询功能. 3-1.异步查询 你有一个长耗时的实体框架…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-4使用实体SQL查询模型 问题 你想通过执行Entity SQL语句来查询你的实体数据模型并返回强类型的对象. 解决方案 假设你有图3-5所示的模型,它包含一个Customer实体类型.这个实体类型有一个Name属性和Email属性.你要使用Entiyt SQL查询这个模型. 图3-5 包含一个Customer实体类型的模型 使用Entity SQL(eSQL)查询模型,Entity S…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性设置默认值.在我们示例中,当数据库中返回null值时,用‘0’作为YearsWorked属性的默认值. 解决方案 假设你有如图3-7所示的模型,你想通过模型查询employees.在数据库中,代表employees的表包含一可为空的YearsWorked列.该列映射到Employee实体中的YearsWork…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有如图3-11所示的模型. 图3-11 一个包含Product和TopSelling的模型 畅销产品有一个与之关联的TopSelling实体.当然,不是所有的产品都是畅销产品.这就是为什么关系为零或者1.当一个产品为畅销产品时,与之关联的topSelling实体包含一个用户评级.你想查找和呈现所有的产品,和与之…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-16  过滤中使用位操作 问题 你想在查询的过滤条件中使用位操作. 解决方案 假设你有一个实体类型,它有一个你想用来做位标识的整型属性.你将使用这个属性中的bit位来表示实体中特殊属性存在与否(译注:作者想表达的是,bit中位为0或1时,实体的类型就会不一样).例如,假设你有一个表示当地画廊的赞助者(patrons)实体,一些赞助者直接捐款(contribute money),一些在画廊…
Entity Framework Code First 利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的 domain classes 来表示 EF 所依赖的模型去执行查询.更改追踪.以及更新功能,这意味着你的 domain classes 必须遵循 EF 所使用的约定.然而,如果你的 domain classes 不能遵循 EF 所使用的约定,此时你就需要有能力去增加一些配置使得你的 classes 能够满足 EF 所需要的信息. C…