- 浏览: 1525039 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
下一代的ADO.NET的目标是要解决关系数据模型和实际应用程序需要模型之间的鸿沟,那么它是怎么做到的呢?
我们都知道,建立在关系数据库基础之上的应用程序经常需要在不同的表之间做复杂的join操作来取得相关的数据。
比如下面的例子:
[图1]
这是一个普通的关系型数据库。这个结构主要描述了雇员的基本信息和雇员的销售情况。
假如我们想取得所有在2006年1月1日招聘过来的全职员工的姓名和职务信息,那么就需要写如下的sql查询语句:
2 FROM Employee e
3 INNER JOIN Contact c ON e.EmployeeID = c.ContactID
4 WHERE e.SalariedFlag = 1 AND e.HireDate >= ' 2006-01-01 '
5
我们分析一下这个复杂的sql语句,就会发现它存在如下缺点:
1. 如果某个应用程序只处理Employees的信息,但我们必须将逻辑数据关系标准化。这样我们就不得不去关注数据库表与表之间的关系(比如雇员的联系信息和姓名在不同的表中),我们需要人为地在两个表中做内联交叉查询以得到正确的数据。
2.
这里该应用程序仅仅是处理全职雇员(SalariedFlag=1),理想的情况是,我们不应看到其他类型的雇员信息。然而实际上所有的雇员信息都在一个
数据库表中,他们是用一个"SalariedFlag"字段来区分的。这就意味着我们需要关注如何将不同类型的雇员加以区分。理想的情况是这样的:假如我
们只需要处理某个数据子集,系统只需要呈现这部分子集的数据。开发人员应当能够通过声明来指定哪个是需要的数据子集。
综合地说,首先,关系数据模型不能直接匹配应用程序实际的数据模型。其次,关系数据模型不能满足应用程序的实际需要,比如应用程序还需要一些非功能性的需求,这些需求包括操作,数据拥有关系,性能和安全。
为了解决如上问题,ADO.NET引入了Entity Framework,它包含了数据模型以及一些设计时和运行时的服务。通过Entity Framework提供的更高抽象层,应用程序的数据模型就可以直接和数据库的关系数据模型交互。
Entity Data Model
Entity Data Model—简称EDM—是一个实体关系数据模型(Entity-Relationship data model). EDM的一个关键的概念如下:
Entity:
Entity是实体类型的实例(例如:Employee, SalesOrder)。它由一个关键字来组织数据记录。多个Entity可以组成Entity-Sets.
RelationShip
:RelationShip是关系类型的实例,它关联相关的实体.多个Relationships 可以组成 Relationship-Sets.
除了上面两个核心概念外,EDM模型还支持多种类型的扩展.
继承:
实体类型可以继承于其他的类型.这种类型的继承只继承结构,不提供向面向对象语言的"行为"继承.
复合类型:
定义一个复合类型Address,它可以由StreetAddress, City 和State这些属性复合而成.
我们按照EDM的概念重新定义[图1]:
[图2]
这里描述了如下元素:
三个实体类型,分别是SalesPerson,SalesOrder和StoreSalesOrder。其中StoreSalesOrder继承自SalesOrder。
一个关系: SalesOrder 和 SalesPerson 之间的关系。
两个实体集(entity-sets):SalesOrders 和 SalesPeople。 实体集SalesOrders 拥有SalesOrder和StoreSalesOrder两个实体类型。
看看上面的模型视图已经更接近应用程序需求了。其中SalesPerson的信息已经不再分布在不同的数据表中了,同时也没有了主从键了。
比如以前这样的查询:
2 FROM SalesPerson sp
3 INNER JOIN Employee e ON sp.SalesPersonID = e.EmployeeID
4 INNER JOIN Contact c ON e.EmployeeID = c.ContactID
5 WHERE e.SalariedFlag = 1 AND e.HireDate >= ' 2006-01-01 '
6
现在只需写成:
2 FROM SalesPeople AS sp
3 WHERE sp.HireDate >= ' 2006-01-01 '
更多关于ADO.NET Entity Framework相关的介绍, 英文好的朋友可以参阅:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ADONET_EDM.asp
以及
http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp
发表评论
-
WPF/Silverlight深度解决方案:(六)HLSL自定义渲染特效之完美攻略(上)
2010-01-13 16:40 2366Shader Effect 中文名称为“渲染特效”或“滤镜” ... -
Silverlight Image Source URI : 一个反斜杠引发的血案
2010-01-12 13:10 3580Silverlight Image Source U ... -
SilverLight跨域访问及其常用的几种解决方法
2010-01-06 16:59 5430SilverLight 出于对安全性的考虑默认情况下对UR ... -
有关silverlight中调用webservice的问题!!
2010-01-06 15:07 3308System.InvalidOperationExceptio ... -
Server.UrlEncode、HttpUtility.UrlDecode不同编码
2010-01-06 12:39 3259Server.UrlEncode、HttpUtility.U ... -
LINQ to XML一些基本查询
2010-01-06 12:34 2034/**/ /// /根据元素的名称进行筛选(有命名空 ... -
使用LINQ to XML来查询XML
2010-01-06 12:16 2747使用LINQ to XML来查询XML ... -
给弟弟起步学习软件开发(.Net 方向)的指导,博友们帮助看看,提些意见给他。
2010-01-06 11:15 960在我学习的时候走了至少3年的弯路,那个时候没有人告诉我该如 ... -
LINQ to XML 用 LINQ 查询 XML
2010-01-06 11:15 1506LINQ to XML 用 LINQ 查询 XML ... -
一个实例掌握linq to XML增查删改
2010-01-06 11:10 2244最近忽然想把过去写的I ... -
使用XML LINQ查询和转换XML
2010-01-06 10:37 1490本章包括 n XML LI ... -
XML LINQ简介
2010-01-06 10:32 1551本章包括 n XML LINQ ... -
.Net 中string与byte[]相互转换
2010-01-05 16:43 2421public static byt ... -
正则表达式收集(持久更新)
2010-01-04 15:56 1108正则表达式收集( ... -
网上搜集的webbrower的资料,很有借鉴价值
2010-01-04 15:54 1890http://hi.baidu.com/lovemoe/ ... -
Lexware Assembly Reference Tool for Visual Studio 2005 / 2008
2010-01-04 10:35 1877http://www.codeproject.com/KB/m ... -
Visual Studio的 诡异bug(mscorlib无法引用)
2010-01-04 09:27 2514这个需要手动修改项目的配置文件 添加 <Re ... -
[C#实战]Google Map开发实战参考
2010-01-03 16:48 5768[C# 实战] ... -
复习一下 .Net: delegate(委托)、event(事件) 的基础知识,从头到尾实现事件!
2010-01-02 23:33 2561有这样一道 .Net/C# 面试题:请以事件的概念实现 ...
相关推荐
ADO.NET Entity Framework 是微软开发的一种ORM(对象关系映射)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需直接编写SQL语句。这个框架的核心概念是实体数据模型(Entity Data Model,EDM...
### ADO.NET Entity Framework 教程知识点概览 #### 一、Entity Framework 概述 - **背景**:Entity Framework (EF) 是 Microsoft 推出的一款 ORM (Object Relational Mapping) 工具,旨在简化数据访问层的开发,...
ADO.NET Entity Framework(简称EF)是微软推出的一种对象关系映射(ORM)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需编写大量的SQL语句。这个“ado.net entity framework extension”指的...
本文将深入探讨三种常见的.NET框架下的数据库访问技术:ADO.NET SQL、LINQ to SQL以及ADO.NET Entity Framework(EF),并重点分析它们在数据库连接性能上的差异,特别是在插入和读取操作,包括模糊检索方面的表现。...
ADO.NET Entity Framework(简称EF)是微软提供的一款强大的数据访问框架,它使得开发者能够以对象关系映射(ORM)的方式操作数据库,极大地简化了数据库编程。在这个"ADO.NET Entity Framework使用封装示范代码"中...
标题“ADO.NET Entity Framework 的分页类代码.rar”表明这是一个与ADO.NET Entity Framework相关的项目,重点在于实现数据库数据的分页功能。Entity Framework是Microsoft开发的一个对象关系映射(ORM)框架,它...
实体框架 EntityFramework 使用概念层、映射层和逻辑层将逻辑数据库结构抽象化。 什么是 ADO.NET Entity Framework? ADO.NET Entity Framework 是一种实体框架,它提供了一种新的数据访问方式,允许开发人员使用...
ADO.NET Entity Framework 4.1 是微软开发的一个强大的对象关系映射(ORM)框架,它构建在 ADO.NET 之上,旨在简化数据库应用程序的开发。这个框架允许开发人员使用面向对象的编程方式来操作数据库,而无需直接编写...
ADO.NET Entity Framework概述PPT讲解,已经学习,好东西、分享
Ado.Net Entity Framework 和 WCF(Windows Communication Foundation)是.NET框架中的两个重要组件,它们分别在数据访问和分布式服务方面发挥着关键作用。本Demo旨在展示如何将这两者结合使用,构建一个完整的应用...
### ADO.NET Entity Framework 开发实践 #### 一、ADO.NET Entity Framework 概览 **ADO.NET Entity Framework**(简称 EF)是微软提供的一种用于 .NET 应用程序的数据访问技术,它支持开发者通过面向对象的方式来...
#### 标题理解:“ADO.NET Entityframework 書籍” 本书籍主要介绍了ADO.NET与Entity Framework的核心概念、技术细节及其在现代软件开发中的应用。其中特别强调了DbContext作为Entity Framework的一个关键组件,在...
ADO.NET EntityFramework入门教程,分别讲解Storage Provider ,Mapping Layer ,Object Services,LINQ to Entities 四层如何设计使用
ADO.NET Entity Framework Domain-Driven
最近ado.net entity framework 电子书,入门学习的最佳书籍
ADO.NET Entity Framework是一个强大的数据访问框架,它允许开发者以对象关系映射(ORM)的方式处理数据库,从而减少了对SQL语句的直接依赖。这个实例涵盖了Entity Framework与SQL Server的集成,帮助我们理解如何...
### ADO.NET Entity Framework 进阶知识点解析 #### 一、ADO.NET Entity Framework 概述 ADO.NET Entity Framework(简称 EF)是微软提供的一种对象关系映射(Object-Relational Mapping,ORM)框架,它允许开发者...
ADO.NET Entity Framework 是微软开发的一款强大的ORM(对象关系映射)框架,用于简化数据库操作,使得开发者无需直接编写SQL语句即可与数据库进行交互。它将数据库中的表、视图等对象映射为C#或VB.NET中的实体类,...
Microsoft ADO.NET Entity Framework Step by Step