
【Entity-Framework】
牛迁迁
货车帮科技有限公司,高级开发工程师
展开
-
ORM思想解析
ORM 对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。 —— [ 百度百科 ]广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。 狭义上原创 2015-07-28 00:58:12 · 14870 阅读 · 38 评论 -
EF学习和使用(一)Database First
上篇博客中介绍了ORM思想,可以说ORM思想在数据交互方面给我们带来了一次变革。他能够自动实现Entity实体的属性与关系型数据库字段的映射,增删改查的sql脚本由ORM来自动生成,使我们编码时不用考虑数据库数据结构,而是以操作实体对象的形式来完成与数据库的交互。与传统开发方式相比ORM可以使我们编写更少的代码来创建和维护应用程序。不得不说ORM这种思想的确优雅。实现ORM思想的框架有很多,有重型的原创 2015-07-28 17:08:25 · 16667 阅读 · 43 评论 -
EF学习和使用(三)Code First
Code First模式我们称之为“代码优先”模式,从某种角度来看,其实“Code First”和“Model First”区别并不是太明显,只是它不借助于实体数据模型设计器,而是直接通过编码方式设计实体模型(这也是为什么最开始“Code First”被叫做“Code Only”的原因)。但是对于EF它的处理过程有所差别,例如我们使用Code First就不再需要EDM文件,所有的映射通过“数据注释原创 2015-08-24 11:47:46 · 16384 阅读 · 27 评论 -
EF学习和使用(二)ModelFirst
ModelFirst我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,使用ModelFirst的前提是,应用程序还没有创建相应的数据库,咱们可以用Visual Studio通过设计系统相关的数据模型来生成数据库结构。当然和DataBaseFirst的区别也是显而易见,可以说是DataBaseFirst的逆向工程。 下面咱们来看看Mod原创 2015-07-29 21:31:04 · 6882 阅读 · 41 评论 -
EF学习和使用(四)解析EF的核心-EDM
通过前三篇博客的介绍,相信大家都已经学会EF的基本使用了。但是这仅仅是第一步,咱们还需要深入了解EF的核心机制,将来还会做EF的性能优化等等。今天就来刨根究底一下,EF的核心EDM; EDM的全称为Entity Data Model(实体数据模型),大家可能不明白他是个什么东西,其实咱们在使用DBFirst和ModelFirst的时候都接触过EDM。EDM模式在项目中的表现形式就是扩展名为.edmx原创 2015-08-26 00:07:32 · 5113 阅读 · 32 评论 -
EF学习和使用(六)显式加载、按需加载
这篇博客接着说EF加载数据的方式,今天介绍剩下的两种:显式加载和按需加载。 显式加载(Explicit Loading)显式加载和延迟加载非常类似,不同的是显式加载要手动关闭EF的延迟加载属性,通过代码ctx.Configuration.LazyLoadingEnabled = false;来完成。using (var dbcontext= new ModelFirstDemoEntities()原创 2015-09-28 22:39:47 · 7494 阅读 · 29 评论 -
EF学习和使用(七)EF性能优化篇
自从ITOO平台旗下的评教系统问世之后,其性能问题引起了轩然大波。CPU占用过高,页面反映速度超慢,根本无法正常使用,为此我们专门成立一个性能优化小队,去研究为什么系统性能这么低,怎么优化性能?框架中用到了EntityFramework,WCF,EasyUI等技术,所以我们大胆猜测可能是这三方面影响了系统的整体性能。经过一段时间的研究和实践,发现我们在使用EF的过程中,由于经验原因对EF的不了解,不原创 2015-09-29 22:23:32 · 20685 阅读 · 56 评论 -
EF学习和使用(八)你必须知道的效率问题根源之Expression<Func<TObject, bool>>与Func<TObject, bool>
框架中加入了EF,使开发效率大大加快,但是项目做出来之后,数据稍微多一点,页面的加载速度就会非常慢。经过层层详细的排查之后,发现是项目封装的EF工具类有问题。 工具类中封装的查询方法:#region 按条件查询:LoadItems(Func<T, bool> whereLambda) /// <summary> /// 按条件查询 /// </summ原创 2015-10-18 19:43:47 · 8257 阅读 · 25 评论 -
EF学习和使用(五)Lazy Loading and Eager Loading
想熟练正确的使用EF框架,那么就必须要了解EF加载数据的方式。EF加载数据的方式,小编了解的有预加载、延迟加载、显式加载、按需加载。不同的加载方式都有不同的适用情况,我们不能在这里笼统地下决定说哪种方式好哪种方式不好。但有一点是需要遵循的,那就是如何提高数据加载的效率。今天这篇博客就来介绍一下EF 的预加载和延迟加载。延迟加载(Lazy Loading)延迟加载又叫惰性加载(Lazy Loading原创 2015-09-17 22:51:51 · 9070 阅读 · 14 评论