随笔分类 -  Entity FrameWork5.0浅析

摘要:Repository模式之前如果我们用最原始的EF进行设计对每个实体类的“C(增加)、R(读取)、U(修改)、D(删除)”这四个操作。第一个:先来看看查询,对于实体类简单的查询操作,每次都是这样的过程会在代码中拥有大量的重复 极为类似的代码段。 using (var db = new EFContext("EFContext")) { var persons = db.Persons.Where(t => t.PersonName == "aehyok").OrderByDescending(t => t.PersonI... 阅读全文
posted @ 2013-10-28 06:28 aehyok 阅读(6243) 评论(7) 推荐(7) 编辑
摘要:前言在Entity Framework 简单查询操作中主要是学习了在Entity Framework中的几种不同模式的查询操作,现在主要来学习一下简单的增加、删除、修改操作。增加 在EF中添加操作一般有两种方式:一是直接创建对象,然后调用“DbSet”的”Add()”方法进行添加;二是调用数据库上下文的”Entry()”方法并设置对应的状态。无论使用哪种方式最终一定要调用“SaveChange()”进行提交。如: using (var db = new EFContext()) { var stephen = new ... 阅读全文
posted @ 2013-10-09 08:50 aehyok 阅读(7063) 评论(0) 推荐(3) 编辑
摘要:前言首先来简单的复习一下如何使用Code First。第一步还是先建立一个控制台的应用程序,然后通过Nuget添加Entity Framework。那么同时会给packages.config和App.config添加相应的配置。第二步添加一个数据操作上下文实体类。添加两个构造函数,并添加一个Person的实体类。 在App.config的配置文件中添加相应的数据链接配置。第三步在调用即可生成相应的数据库。EFContext.cs public class EFContext:DbContext { public EFContext() : bas... 阅读全文
posted @ 2013-09-30 09:04 aehyok 阅读(5081) 评论(2) 推荐(3) 编辑
摘要:1.Entity Framework简介http://www.cnblogs.com/aehyok/p/3315991.html2.Entity Framework DBFirst尝试http://www.cnblogs.com/aehyok/p/3318892.html3.Entity Framework ModelFirst尝试http://www.cnblogs.com/aehyok/p/3323438.html4.Entity Framework CodeFirst尝试http://www.cnblogs.com/aehyok/p/3323496.html5.Entity Framew 阅读全文
posted @ 2013-09-26 22:45 aehyok 阅读(4437) 评论(7) 推荐(1) 编辑
摘要:前言简单的说一下自己的理解,大家应该都很明白ADO.NET,也就是原生态的数据库操作,直接通过拼接SQL语句,表与表之间通过链接(inner join left join 或者子查询),也就是在设计表的时候预先设计好的,通过主外键进行关联。那么现在在Entity Framework中是如何配置处理的呢?Entity Framework 关系约束配置 对于实体关系对应的数据表关系,无非“0:1,1:1,1:N,N:N”这几种,可以使用导航属性中的数据类型来表示,0…1端使用单实体类型表示,N端使用ICollection集合类型表示。对于单实体端,默认是可为空的,即为0关系,如果要设置为1关系,要 阅读全文
posted @ 2013-09-25 22:32 aehyok 阅读(2291) 评论(0) 推荐(2) 编辑
摘要:前言使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入EntityFramework程序集,但实体类最好能是保持与架构无关性的POCO类,才能更具通用性。所以,最好是在数据层中使用FluentAPI在数据层中进行实体类与数据库之间的映射工作。从功能上而言Data Annotations是Fluent API的一个子集, Data Annotations可以实现的功能Fluent API都能实现。Fluent API特性列举当然,System.ComponentModel.DataAnnotations命名空间的DataAnnotation 阅读全文
posted @ 2013-09-25 13:25 aehyok 阅读(2546) 评论(0) 推荐(0) 编辑
摘要:前言DataAnnotation 特性由.NET 3.5中引进,给.NET中的类提供了一种添加验证的方式。但是在EF中它又可以对映射关系进行控制,相比较Fluent API使用起来要简单一些。DataAnnotation特性列举DataAnnotation由命名空间System.ComponentModel.DataAnnotations提供。下面列举实体模型中常用的DataAnnotation特性:1.KeyAttribute:对数据库中表的主键的设置 [Key] public int OrderID { get; set; }2.RequiredAttribut... 阅读全文
posted @ 2013-09-18 13:22 aehyok 阅读(2905) 评论(0) 推荐(3) 编辑
摘要:前言Code First之所以能够让开发人员以一种更加高效、灵活的方式进行数据操作有一个重要的原因在于它的约定配置。现在软件开发越来越复杂,大家都试图将软件设计的越来越灵活,很多内容我们都希望是可配置的,但是过多的配置也会带来很大的工作量,解决这个问题的方法就是约定。对于一些简单的,不太可能经常变化的内容我们以一种约定的方式进行设计。使用过其他ORM框架的朋友可能知道一般ORM都有对应的映射配置文件(一般是一个Xml文件),但是EF并没有。在EF中是以一种约定的方式进行表、列同实体类进行映射的,与此同时为了提高最大的灵活性EF中可以通过Fluent API和Data Annotations两种 阅读全文
posted @ 2013-09-18 11:20 aehyok 阅读(1936) 评论(0) 推荐(1) 编辑
摘要:前言在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发。今天就让我们一起看一下使用Entity Framework Power Tools如何基于现有数据库生成数据类和数据库上下等。Entity Framework Power Tools基于现有数据库生成POCO数据类和数据库上下文需要借助Visual Studio一个扩展插件-- Entity Framework Power Tools(一个Code First反向工程工具)。通过点击上图的扩展和更新,得到如下图所示的界面安装完之后只要在项目上右键选择Entity Frame 阅读全文
posted @ 2013-09-17 01:23 aehyok 阅读(4642) 评论(4) 推荐(2) 编辑
摘要:前言紧接着前面一篇博文Entity Framework CodeFirst尝试。我们知道无论是“Database First”还是“Model First”当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Code First如何更新已有的模型呢?今天我们简单介绍一下En... 阅读全文
posted @ 2013-09-16 23:50 aehyok 阅读(5046) 评论(9) 推荐(3) 编辑
摘要:前言Code First模式我们称之为“代码优先”模式,是从EF4.1开始新建加入的功能。使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的实现过程),然后自动生成数据库。这样设计的好处在于我们可以针对概念模型进行所有数据操作而不必关系数据的存储关系,使我们可以更加自然的采用面向对象的方式进行面向数据的应用程序开发。从某种角度来看,其实“Code First”和“Model First”区别并不是太明显,只是它不借助于实体数据模型设计器,而是直接通过编码(数据类)方式设计实体模型(这也是为什么最开始“Code First”被叫做“Code Only”的 阅读全文
posted @ 2013-09-16 12:29 aehyok 阅读(3679) 评论(4) 推荐(4) 编辑
摘要:前言Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio中我们通过设计对于的数据模型来生成数据库和数据类。简单演示使用过程第一步:首先还是添加一个简单的控制台应用程序,然后在此项目上添加一个 ADO.NET 实体数据模型。第二步:选择空模型。第三步:在模型设计视图中,添加新实体点击确定后第四步:在Order实体上在添加两个属性,Customer(订单所属客户)类型为string,OrderDate(订单下单日期)类型为DateTime字段类型设置, 阅读全文
posted @ 2013-09-15 23:05 aehyok 阅读(2425) 评论(3) 推荐(3) 编辑
摘要:前言“Database First”模式我们称之为“数据库优先”,前提是你的应用已经有相应的数据库,你可以使用EF设计工具根据数据库生成数据数据类,你可以使用Visual Studio模型设计器修改这些模型之间对应关系。简单使用演示过程第一步:确定好已有的数据库.第二步:创建一个简单的控制台应用程序。第三步:右键项目,然后添加新建项====>ADO.NET 实体数据模型第四步:接着选择从模型生成====>>>从数据库生成第五步:点击新建连接,添加数据服务器,登录服务器方式,选择数据库第六步:继续下一步,然后选择表等数据对象,在此简单的选择了三个表Orders,Order 阅读全文
posted @ 2013-09-13 12:28 aehyok 阅读(5477) 评论(0) 推荐(2) 编辑
摘要:前言很久很久之前就想来好好的学习一下EF,一直也是各种理由导致一直也没有好好的开始,现在下定决心了,不管怎样一定要把这先走一遍,并且把自己学到的相关EF的知识进行记录,以备后用,也望广大博友们一起来学习,探讨。Entity FrameWork概述Entity Framework(EF)是一个开源的“对象/关系映射(ORM:Object Relational Mapping)”框架,使应用程序可以使用一种“纯”的对象模型来访问关系数据库中的数据。EF是微软主推的数据存取技术,其他一些重要的微软技术领域,比如Asp.Net MVC、WCF等等,都使用EF构建数据存取层。在实际开发中,现在通常使用E 阅读全文
posted @ 2013-09-12 13:24 aehyok 阅读(2993) 评论(2) 推荐(3) 编辑