惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
V
V2EX
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
Vercel News
Vercel News
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
小众软件
小众软件
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
P
Privacy & Cybersecurity Law Blog
T
Tor Project blog
AWS News Blog
AWS News Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
Kaspersky official blog
B
Blog RSS Feed
G
Google Developers Blog
量子位
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
雷峰网
雷峰网
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
F
Full Disclosure
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】
The Hacker News
The Hacker News
U
Unit 42
S
SegmentFault 最新的问题
I
InfoQ
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
罗磊的独立博客
Spread Privacy
Spread Privacy
C
CERT Recently Published Vulnerability Notes

博客园 - 蒋建华

使用SharePoint 2010 Management Shell修改SharePoint 2010 身份认证方式的两种方法 推荐几款兼容移动终端和PC终端的UI控件 八大免费SharePoint MasterPage 和Theme 一个完整的微软官方提供的SharePoint 2010 完整模板 Sample Master Pages for SharePoint 2010 Windows 7下安装SharePoint Server 2010指南 使用Create EndPoint创建本机XML Web Service 将PD的物理模型导入Erwin 使用PowerDesigner 15生成SQL Server中文注释 Workflow4 持久化之数据库模型 私有云、公有云与传统数据中心 SharePoint 2010企业应用解决方案 微软云计算解决方案之特性及案例分析 不竭动力:云计算中虚拟化管理详解 云协作新利器:微软SharePoint Online 云计算版的PC管理工具:Windows Intune PetShop与ORM架构的比较 私有云:构建DDC测试环境需求分析 教你如何安装配置动态数据中心测试环境
ORM及相关技术概念入门
蒋建华 · 2011-07-29 · via 博客园 - 蒋建华
 

      ORM及相关技术概念入门

ORM-对象关系映射

ORM:是一种为了解决面向对象与关系数据库存在的相互匹配的技术。与非ORM相比,ORM技术基本消除了数据访问层大量重复性劳动,极大的提高了开发效率,并且为平台应用多数据库提供了很好的支持。现在流行的ORM产品比较多,比较著名的有NHibernate, IBatis.NETDBLinq等。

ORM产品有微软的Linq For SQL Server/Entity framework(注:在这篇文章中不讨论Entity Framework, OracleLinq For Oracle, 也可以自主开发的ORM产品。 Linq For SQL Server用于解决SQL Server数据库的映射, Oracle For Linq用于解决Oracle数据库的访问;自主开发的ORM用于解决其他数据库的访问。针对不同数据库的ORM实现, 代码要求都是一样的,需要改变的是数据库类型的配置。企业应用从一种数据库支持切换到另一种数据库支持,需要变更的只是数据库类型设置。

LINQ

Linq是微软公司在.net Framework4.0中推出的语言基础查询。该技术的推出,极大的释放了对象集合的操作功能,而对象集合操作是编程中大量使用,Linq可以代替原来的许多的环操作,大大的提高了编程效率,提高了代码的质量。并且LinqORM结合,更是简化了数据查询的操作。并平台将要求广泛使用Linq来代替环等操作,因为开发人员全面、完整的掌握Linq技术的使用.

泛型集合

泛型集合是一种强类型的集合.强类型是提高代码质量,减少编程Bug最重要、直接的手段。原则上本平台集合都需要使用泛型集合,不再使用 array等非泛型集合.

自动生成和Partial机制

企业应用中可以采用ORM作为数据访问层的实现机制,其中ORM中关于实现映射的代码和数据库对象之间存在一一对应的关系,只要任何一方已经确定,就可以自动推导出另一方的代码. 可以根据已经设计好的数据库模型推导出实体模型映射部分的代码;或根据映射部分的代码自动生成数据库表、列、主外键等数据库对象。在设计初期,由于设计数据库对象比编写类代码要容易,因此,在项目初期,一般是先设计数据库对象,然后根据数据库对象自动生成ORM所需要的类代码. 在项目后期或维护阶段,需要对已经设计好的类进行少量的修改,这时通过修改类很容易实现。并且在项目后期或维护阶段,因为已经存在了开发、测试、运行多个数据库,对这些数据库一一进行手工修改显然不方便,这时需要根据已经生成好的类模型来自动同步数据库对象。

   代码自动生成机制不仅可以应用在ORM机制上,同时也可以应用在文档生成、应用在原型代码生成上。ORM中的实体类的代码,不仅有映射的代码,同时也需要根据应用的需要手工增加代码。因此,需要对程序员手工编写的代码和基于ORM机制的代码实现分离,以达到代码清晰,不会手工去修改自动生成的映射代码,或重新生成映射代码时,覆盖或丢失手工代码的现象。为了解决此问题,本平台通过采用Partial类机制来实现。即类中自动生成代码和手工编写的代码分别在不同的文件里。

      Extension

Extension.net framework技术平台实现类功能注入的一种机制。使用Extension机制可以减少类的继承,使库函数可以以面向对象的方式使用,减低理解难度,从而提高开发效率。