码迷,mamicode.com
首页 > 其他好文 > 详细

Entity Framework

时间:2015-10-20 22:50:18      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

学习一种新技术的思路:

  1. 首先,要明确这种新技术是解决什么问题的,所需要的基础知识是什么;
  2. 其次,这种技术是如何解决这个问题的,从概念上来讲,是什么结构,是如何运行的;
  3. 再次,这些概念具体的实现也就是对应的类库中有哪些类、接口等,这些类、接口对应哪些概念,具体的方法是什么,如何在自己的项目中运用。

比如说,以EF为例:

首先,EF是一种ORM,解决的问题是对象和关系之间的映射问题,为什么要在对象和关系之间进行映射呢?其实理解新技术要解决什么问题这一点最难,因为我没有遇到过这种问题,所以也很难理解这个问题,比如说,我一直在使用简单的“事务脚本”的模式,根本没有使用“领域模型”,也就没有使用“对象”,也就根本没有遇到过需要将“对象”映射为“关系“的问题,所以理解不了EF到底要解决的“对象和关系之间进行映射”是什么问题,解决这个问题的基本思路是什么;等到你使用了“领域模型”后,才发现对象和关联之间的不匹配是个大问题,非常需要这样一个ORM框架;那么ORM(也就是EF)要解决的基本问题是:

  1. 存储在关系数据库中的记录,如何方便的转换为内存中的对象;
  2. 对内存中对象的修改,如何方便的保存到数据库中;

要解决这个问题,ORM需要知道“领域模型”中的类及其属性和关系模型中的表及其字段之间是什么关系(也就是需要进行某种“配置”来表示这种关系),有了这个配置,需要某个机制能够利用这个配置,在对象和关系之间进行转换,这也意味着,这个“机制”要能够认识领域模型中的所有”类“,也要能够认识数据库中的所有表,它知道如何访问数据库,它要提供接口,供应用程序调用以便将数据库中的数据加载到内存中变成对象,将内存中的对象保存到数据库中。

这样我们就知道了ORM的基本结构,即1.需要有上面描述的那个“机制”以及这个机制需要具备的基本功能;2.需要能够对“类及其属性”和“表及其字段”之间的关系进行配置。

那么EF是怎么实现这个机制的呢?

EF用System.Data.Entity.DBContext来实现上面说的“机制”,用System.Data.Entity.Infrastructure.DbModel表示对象和关系之间的对应关系,用System.Data.Entity.DBModelBuilder来配置对象和关系之间的对应关系并生成DbModel。这几个类构成了EF的核心。

 

 

觉得有用的文章列表:

Code First:Inside DBContext Initialization.http://blog.oneunicorn.com/2011/04/15/code-first-inside-dbcontext-initialization/,这篇博客文章介绍了DBContext初始化的过程。

Entity Framework

标签:

原文地址:http://www.cnblogs.com/leegsh/p/2942072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!