Entity Framework 学习结束语
    
            
摘要:前一段时间,一直在学习EF.对于这个EF多少算是有点了解吧. 目前,对于EF这个学习系列的文章,就暂时写到这里.当然还有一些相关的知识没有介绍,请各位朋友见谅!很乐意和大家交换关于EF学习的心得或技巧.后续,关于EF块东西,我还是会随时关注着,如果有什么好的心得或文章,我也会尽量拿出来给大家分享!每次看到一些朋友的相关留言讨论,我都无比的兴奋,有点小小成就感! 最后,感谢各位朋友的热情关注和支持!
        
阅读全文
摘要:本节,我们将介绍一些改善EF代码的相关方法,如NoTracking,GetObjectByKey, Include等。 l MergeOption.NoTracking当我们只需要读取某些数据而不需要删除、更新的时候,可以指定使用MergeOption.NoTracking的方式来执行只读查询(EF默认的方式是AppendOnly)。当指定使用NoTracking来进行只读查询时,与实体相关的引用...
        
阅读全文
摘要:从Code MSDN上下载下来的EFOracleProvider不支持Oracle9i.但是,目前我所使用的还是Oracle9i。为此,对EFOracleProvider修改了以下,以便使其支持Oracle9i. 下面说说具体修改地方.(红色部分为添加或修改的代码部分) 一,修改EFOracleProvider  1,修改EFOracleProviderManifest.cs类文件, intern...
        
阅读全文
摘要:http://www.cnblogs.com/xray2005/archive/2009/06/01/1493661.html本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作。通常,复杂类型是指那些由几个简单的类型组合而成的类型。比如:一张Customer表,其中有FristName和LastName字段,那么对应的Customer实体类将会有FristName和L...
        
阅读全文
摘要:Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM)。Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询。l 关键字Value关键字ESQL 提供了 SELECT VALUE 子句以跳过隐式行构造。SELECT VALUE 子句中只能指定一项。在使用这样的子句时,将不会对 SELECT 子句中的项构造行...
        
阅读全文
摘要:本节,简单的介绍EF中的ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager这个几个比较重要的类,它们都位于System.Data.Entity.dll下的System.Data.Objects命名空间下。在后续的章节中,我们经常会用到它们的某些方法,以便完成我们的某些操作或目的。本节,简单的说明一下以后我们可能会用到的各个类的...
        
阅读全文
摘要:自从Entity Framework(EF)第一版本的发布以来,我们陆续从用户那里得到了许多高质量的反馈。根据这些反馈,在.NET 4中,我们为Entity Framework添加了许多新的功能和改进,下面我们就来一窥Entity Framework 4中的新特性。外键支持(Foreign Keys)Entity Framework添加了对外键的支持。利用外键关联,您现在可以将外键属性包含在实体里...
        
阅读全文
摘要:什么是持久层?先解释什么是持久,英文persistence,将内存中的数据固化,保持在物理储存设备中。然而在企业应用中,往往通过关系型数据库来完成这一过程。那么持久层的定义是:相对于三层架构中的表示层、业务层而言,专门负责持久化数据的独立领域。设计模式中的“单一职责”原则确定了分层的目的,说白了,持久层就是专门与数据库打交道的。如图1所示 图1  在PetShop4.0中的...
        
阅读全文
摘要:PetShop4.0是微软针对.NET企业系统推出的一个范例。业界有许多.NET与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅,而且有很多可以借鉴之处。PetShop是一个...
        
阅读全文
摘要:什么是领域模型?领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。   当我们不再对一个新系统进行数据库提炼时,取而代之的时面向对象的模型提炼。我们必须大刀阔斧地对业务领域进行细分,将一个复杂的业务领域划分为多个小的子领域,同时还必须分清重点和次要部分,抓住核心领域概念,...
        
阅读全文
摘要:概况  大部分的应用都会包含一些跨越逻辑层和物理层的通用功能。这些功能包括:用户认证、授权、缓存、通信、异常管理、日志、基础框架和合法性验证。这些功能通常被叫做“跨层关注”,因为它会影响整个应用,应该尽可能将他们的代码集中在一起。如果这类代码散落在各个地方,需要修改的时候,就需要打开每个地方进行修改;如果集中管理的话,只需要打开一个地方,修改一个地方就可以了。  通常的设计...
        
阅读全文
摘要:这么好的东西,不拿来出分享,我对不起原作者呀。但是我这里不知道作者是谁,感谢在先了。 http://www.21php.com/Rational Rose 2003.rar http://files.cnblogs.com/lixianhuei/rose2003crack.rar 以上两个网址分别是用来下载Rational Rose 2003及其破解软件的。 1、安装Rational Rose20...
        
阅读全文
摘要:概况   数据层组件提供了访问系统边界内,或者是其他系统暴露的数据的方法。包括数据访问组件,用来访问系统边界内的数据,服务代理组件,用来访问其他服务暴露的数据。另外,还可能包含其他帮助功能和工具类的组件。  本章将帮助你理解设计数据组件基本的步骤。第一步是确定对于访问的数据有什么限制条件,帮助你选择适当的数据访问技术。接下来是选择映射策略,决定数据访问方法。然后决定数据访问组件如何连接数据源。最后...
        
阅读全文
摘要:概况   业务实体存储数据,通过属性暴露数据,包含并管理应用需要用的数据,同时提供编程访问及相关的功能。业务实体应该在内部进行数据有效性验证,并且封装业务逻辑来保证一致性,实现业务规则和行为。因此,设计适当的业务实体,对于最大化性能和高效性的业务层来说,是非常重要的。  本章将帮助你理解业务实体组件的设计。首先,看看应用中使用的不同数据格式,以及数据被如何使用。接下来,你将会学到,在设计中,已有的...
        
阅读全文
摘要:前言   业务组件的设计是非常重要的工作,如果你没有正确的设计业务组件的话,结果很可能就是代码难以维护和扩展。在设计和实现应用的时候,有多种类型的业务组件。包括业务逻辑组件,业务实体,业务流程或者是工作流组件,工具和帮助组件。  设计步骤  1 确定在应用中将会使用的业务组件  在业务层,你需要创建和使用各种类型的组件来处理业务逻辑。本步骤的目标就是如何识别这些组件,发现应用需要的组件。下面的步骤...
        
阅读全文
摘要:5 决定数据绑定的需求   数据绑定在应用中,提供了一种在用户界面的控件和数据或者逻辑组件建立连接的方式。数据绑定允许你将数据库的数据,或者是其他结构的数据进行显示或者和他们进行交互。数据绑定是绑定目标(用户控件)和绑定源(数据结构、Model、或者是表现层逻辑组件)之间的桥梁。    数据绑定控件是一些绑定到数据源的控件。例如:DataGrid控件绑定要一个集合。数据绑定通常使用在分离的表现模式...
        
阅读全文
摘要:组件提供了一种将功能划分的方式,可以分开安装和部署。  组件设计的常用原则  在设计组件的时候,可以参考下面的原则:  对于组件中的类,应该遵守S.O.L.I.D的类设计原则。这方面大家可以参考:面向对象设计的SOLID原则。简单的说,S.O.L.I.D原则就是:  Single responsibility principal:单一职责原则,一个类应该只有一个职责。  Open/Closed p...
        
阅读全文
摘要:如果你的应用是通过服务来提供功能,将服务分离出来一层是相当重要的。这篇将介绍服务的设计,和设计服务的过程中可能遇到的问题,以及服务的设计步骤。   在服务层,你定义服务接口的实现,以及数据契约。一个重要的概念就是服务不应该暴露实现的细节,已经在应用内部使用的业务实体。确保你的业务实体不至于过度影响数据契约。服务层应该提供翻译数据契约和业务实体的组件。    上图中的深黑色框中的就是服务层。服务层通...
        
阅读全文
摘要:技术考虑  下面的原则帮助你选择适当的技术,依赖于设计的应用类型和应用的需求:  如果你需要基本的查询和参数,考虑直接使用ADO.NET的对象。   如果你需要支持复杂的数据访问方案,或者是想简化你的数据访问代码,考虑使用企业库的数据访问模块,更多信息请查看http://entlib.codeplex.com/。   如果你在已经存在数据库的情况下,创建数据驱动的web应用程序,考虑使用ASP.N...
        
阅读全文
摘要:数据访问层简介    上图的深黑色框中的就是数据访问层,通常包括下面的部分:  数据访问组件。这些组件抽象了对于存储在数据库的内容的访问。将常用的数据访问集中化,是的应用很容易配置和维护。一些数据访问框架,还允许开发者在helper和数据访问组件的基础上实现自定义的访问组件。其他的数据访问组件,例如ORM框架,自动实现了数据访问组件,减少了开发者需要编写的数据访问代码。  服务代理。如果业务逻辑需...
        
阅读全文