随笔分类 -  Entity Framework实例详解

摘要:鱼和熊掌不能兼得——中国谚语一、介绍Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和熊掌不能兼得。但是,通过对EF的学习,可以避免不必要的性能损失。本篇只介绍关联实体的加载的相关知识,这在我之前的文章中都有介绍。我们已经了解到EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Loading都是延迟加载。(一)Lazy Loading使用的是动态代理,默认情况下,如果POCO类满足以下两个条件,E 阅读全文
posted @ 2013-12-27 21:13 BobTian 阅读(9148) 评论(8) 推荐(7) 编辑
摘要:好久没有在博客园更新博客了,如今都换了新公司。前段时间写了关于EF迁移的文档,今天拿出来作为这个系列的一篇吧。一、Entity Framework 迁移命令(get-help EntityFramework)Enable-Migrations 启用迁移Add-Migration 为挂起的Model变化添加迁移脚本Update-Database 将挂起的迁移更新到数据库Get-Migrations 获取已经应用的迁移二、自定义迁移现有一个Demo,有如下Product模型: 1: public class Product 2: { 3: 4: public int Pr... 阅读全文
posted @ 2013-11-23 18:05 BobTian 阅读(22511) 评论(3) 推荐(12) 编辑
摘要:Entity Framework 查询使用集成查询,简称LINQ。LINQ是一个查询框架,并不限于Entity Framework使用,同样不限于数据库。LINQ Provider 负责将LINQ查询翻译成对数据的查询,然后返回查询结果。Entity Framework的LINQ Provider是 阅读全文
posted @ 2013-01-09 21:18 BobTian 阅读(22290) 评论(17) 推荐(14) 编辑
摘要:前两篇博文中的配置属性和配置关系都是配置映射,配置属性是属性的映射,配置关系式关系的映射,本篇从讲讲实体的映射。首先,配置实体映射到表,使用ToTable方法,它接受两个参数,第一个参数是表的名称,第二个参数是Schema名称。 1: ToTable("Destination", "baga");一、配置多个实体到一个表下面是用到的类: 1: public class Blog 2: { 3: public int Id { get; set; } 4: public DateTime Cre... 阅读全文
posted @ 2012-11-20 00:24 BobTian 阅读(15698) 评论(2) 推荐(10) 编辑
摘要:实体间的关系,简单来说无非就是一对一、一对多、多对多,根据方向性来说又分为双向和单向。Code First在实体关系上有以下约定:1. 两个实体,如果一个实体包含一个引用属性,另一个实体包含一个集合属性,Code First默认约定它们为一对多关系。 2. 两个实体,如果只有一个实体包含一个导航属性或一个集合属性,Code First也默认约定它们是一对多关系。 3. 两个实体分别包含一个集合属性,Code First默认约定它们为多对多关系。 4. 两个实体分别包含一个引用属性,Code First默认约定它们为一对一关系。 5. 在一对一关系情况下,需要提供给Cod... 阅读全文
posted @ 2012-11-12 21:53 BobTian 阅读(23146) 评论(6) 推荐(18) 编辑
摘要:Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表。然而,有时候,不能也不想遵循这些约定,那就需要重写它们。重写默认约定有两种方式:Data Annotations和FluentAPI。Data Annotations在功能上是Fluent API的子集,在一些映射场景下使用Annotations不能达到重写的目的,因此本篇文章中使用Fluent API配置属性。一、Fluent API配置属性Code First Fluent API通常情况下是在DbContext的派生类中重写OnModelCreating方法。1.配置LengthLeng 阅读全文
posted @ 2012-11-07 00:04 BobTian 阅读(19140) 评论(10) 推荐(15) 编辑
摘要:开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx俗话说:“工欲善其事必先利其器”,在深入讲解Entity Framework之前,先准备一下开发工具以及前期的配置。一、开发工具开发工具基本略过,这里说一下,我使用的是Visual Studio 2012,Entity Framework版本为4.3.1,获取这个版本的办法:在Package Manager Console 阅读全文
posted @ 2012-11-04 00:16 BobTian 阅读(13303) 评论(11) 推荐(12) 编辑
摘要:一、前言浏览ADO.NET博客发现,在过去的几年,Entity Framework取得了显著进展,尤其这一两年更是发展迅猛。EF4.1引进了新的DbContext API和Code First的支持。今年早些时候发布的EF 4.3提供了对Code First迁移的支持,这使得开发人员可以轻松通过优化... 阅读全文
posted @ 2012-11-02 00:17 BobTian 阅读(16112) 评论(25) 推荐(12) 编辑