2012年5月10日

摘要: ADO.NET Entity Framework 从入门到精通系列学习目录初级篇ADO.NET Entity Framework 学习初级篇1--EF基本概况ADO.NET Entity Framework 学习初级篇2--几个重要类的介绍ADO.NET Entity Framework 学习初级篇3-- LINQ TO EntitiesADO.NET Entity Framework 学习初级篇4--Entity SQLADO.NET Entity Framework 学习初级篇5--ObjectQuery查询及方法ADO.NET Entity Framework 学习初级篇6--Entit 阅读全文
posted @ 2012-05-10 16:20 $tommix 阅读(1974) 评论(0) 推荐(1) 编辑
摘要: 本节,我们将介绍一些改善EF代码的方法,包括编译查询、存储模型视图以及冲突处理等内容。CompiledQuery 提供对查询的编译和缓存以供重新使用。当相同的查询需要执行很多遍的时候,那么我们可以使用ComplieQuery将查询的语句进行编译以便下次使用,这样可以免去对同一语句的多次处理,从而改善性能。示例代码如下:[Test] public void ComplieTest() { using (var db = new NorthwindEntities1()) { //对查询进行编译 ... 阅读全文
posted @ 2012-05-10 16:14 $tommix 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 本节,我们将介绍一些改善EF代码的相关方法,如NoTracking,GetObjectByKey, Include等。 MergeOption.NoTracking当我们只需要读取某些数据而不需要删除、更新的时候,可以指定使用MergeOption.NoTracking的方式来执行只读查询(EF默认的方式是AppendOnly)。当指定使用NoTracking来进行只读查询时,与实体相关的引用实体不会被返回,它们会被自动设置为null。因此,使用NoTracking可以提升查询的性能。示例代码如下:[Test] public void NoTrackingTest() ... 阅读全文
posted @ 2012-05-10 16:12 $tommix 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 从Code MSDN上下载下来的EFOracleProvider不支持Oracle9i.但是,目前我所使用的还是Oracle9i。为此,对EFOracleProvider修改了以下,以便使其支持Oracle9i.下面说说具体修改地方.(红色部分为添加或修改的代码部分)一,修改EFOracleProvider1,修改EFOracleProviderManifest.cs类文件,internal const string TokenOracle9i = "9i";//add by xray2005 internal const string TokenOracle10g = & 阅读全文
posted @ 2012-05-10 16:08 $tommix 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 在EF中,各个实体的插入、更新和删除也都通过使用存储过程来完成,以便提高点性能。这个类似于数据集。其步骤是:先定义存储过程,然后在VS的可视化设计器,设置存储过程映射即可。下面,以为Supplier实体映射存储过程为例。分别建立插入、更新和删除存储过程。InsertSuppliers存储过程定义如下:CREATE PROCEDURE [dbo].[InsertSuppliers] -- Add the parameters for the stored procedure here@CompanyName nvarchar(40),@ContactName nvarchar(30),@C... 阅读全文
posted @ 2012-05-10 16:04 $tommix 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 目前,EF对存储过程的支持并不完善。存在以下问题:l EF不支持存储过程返回多表联合查询的结果集。l EF仅支持返回返回某个表的全部字段,以便转换成对应的实体。无法支持返回部分字段的情况。l 虽然可以正常导入返回标量值的存储过程,但是却没有为我们自动生成相应的实体.cs代码,我们还是无法在代码中直接调用或使用标量存储过程l EF不能直接支持存储过程中Output类型的参数。l 其他一些问题。本节,我们将学习如何手动添加/修改存储过程,如何使EF能够支持Output类型的参数。l 添加/修改存储过程有时候,某个SQL语句比较复杂,但是数据库中又没有定义相应的存... 阅读全文
posted @ 2012-05-10 16:01 $tommix 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 目前,EF对存储过程的支持并不完善。存在以下问题:l EF不支持存储过程返回多表联合查询的结果集。l EF仅支持返回返回某个表的全部字段,以便转换成对应的实体。无法支持返回部分字段的情况。l 虽然可以正常导入返回标量值的存储过程,但是却没有为我们自动生成相应的实体.cs代码,我们还是无法在代码中直接调用或使用标量存储过程l EF不能直接支持存储过程中Output类型的参数。l 其他一些问题。下面,主要针对如何使用存储过程,以及存储返回实体、表的部分字段这个几个问题,做具体介绍。l 导入存储过程及返回实体在VS可视化设计器中,打开实体模型(emdx文件)。然后... 阅读全文
posted @ 2012-05-10 15:57 $tommix 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作。通常,复杂类型是指那些由几个简单的类型组合而成的类型。比如:一张Customer表,其中有FristName和LastName字段,那么对应的Customer实体类将会有FristName和LastName这两个属性。当我们想把FirstName和LastName合成一个名为CustomerName属性时,此时,如果要在EF中实现这个目的,那么我们就需要用到复杂类型。目前,由于EF不能显示支持复杂类型,所以我们无法在VS里的可视化设计器里面来设计我们需要的复杂类型。所以,我们需要手动修改实体模型,以便使其支持复杂 阅读全文
posted @ 2012-05-10 15:53 $tommix 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 本节,直接写通过代码来学习。这些基本操作都比较简单,与这些基本操作相关的内容在之前的1至6节基本介绍完毕。l 增加:方法1:使用AddToXXX(xxx)方法:实例代码如下: using (var edm = new NorthwindEntities()) { Customers c = new Customers { CustomerID = "c#", City = "成都市", Address = "中国四川省", CompanyName = "cnblogs", Country = "中国&qu 阅读全文
posted @ 2012-05-10 15:39 $tommix 阅读(1039) 评论(0) 推荐(0) 编辑
摘要: System.Data.EntityClient 命名空间是 实体框架的 .NET Framework 数据提供程序。EntityClient 提供程序使用存储特定的 ADO.NET 数据提供程序类和映射元数据与实体数据模型进行交互。EntityClient 首先将对概念性实体执行的操作转换为对物理数据源执行的操作。然后再将物理数据源返回的结果集转换为概念性实体。EntityClient下的类有以下几个:l EntityConnection l EntityCommand l EntityConnectionStringBuilder l EntityParam... 阅读全文
posted @ 2012-05-10 15:36 $tommix 阅读(599) 评论(0) 推荐(0) 编辑
摘要: ObjectQuery 类支持对 实体数据模型 (EDM) 执行 LINQ to Entities 和 Entity SQL 查询。ObjectQuery 还实现了一组查询生成器方法,这些方法可用于按顺序构造等效于 Entity SQL 的查询命令。下面是 ObjectQuery 的查询生成器方法以及等效的 Entity SQL 语句:Distinct,Except,GroupBy,Intersect,OfType,OrderBy,Select,SelectValue,Skip,Top,Union,UnionAll,Where每个查询生成器方法返回 ObjectQuery 的一个新实例。使用这 阅读全文
posted @ 2012-05-10 15:31 $tommix 阅读(770) 评论(0) 推荐(0) 编辑
摘要: Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM)。Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询。l 关键字Value关键字ESQL 提供了 SELECT VALUE 子句以跳过隐式行构造。SELECT VALUE 子句中只能指定一项。在使用这样的子句时,将不会对 SELECT 子句中的项构造行包装器,并且可生成所要形状的集合,例如:SELECT VALUE it FROM NorthwindEntities.Customers as itit关键字 it 出现在 ESQL 中, 查... 阅读全文
posted @ 2012-05-10 15:12 $tommix 阅读(875) 评论(0) 推荐(0) 编辑
摘要: LINQ 技术(即 LINQ to Entities)使开发人员能够通过使用 LINQ 表达式和 LINQ 标准查询运算符,直接从开发环境中针对 实体框架对象上下文创建灵活的强类型查询。LINQ to Entities 查询使用对象服务基础结构。ObjectContext 类是作为 CLR 对象与 实体数据模型 进行交互的主要类。开发人员通过 ObjectContext 构造泛型 ObjectQuery 实例。ObjectQuery 泛型类表示一个查询,此查询返回一个由类型化实体组成的实例或集合。返回的实体对象可供更新并位于对象上下文中。以下是创建和执行 LINQ to Entities 查询 阅读全文
posted @ 2012-05-10 15:07 $tommix 阅读(1338) 评论(1) 推荐(0) 编辑
摘要: 本节,简单的介绍EF中的ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager这个几个比较重要的类,它们都位于System.Data.Entity.dll下的System.Data.Objects命名空间下。在后续的章节中,我们经常会用到它们的某些方法,以便完成我们的某些操作或目的。本节,简单的说明一下以后我们可能会用到的各个类的方法,以方便我们后续的学习。 ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。ObjectContext 类 阅读全文
posted @ 2012-05-10 15:02 $tommix 阅读(1671) 评论(0) 推荐(0) 编辑
摘要: 最近在学习研究微软的EF,通过这时间的学习研究,感觉这个EF目前来说还不是很完善,半成品。不过,据说在.Net4.0中,微软将推荐使用此框架,并会有所改善。而且,现在基本上所有数据库均提供了对EF的支持。因此,为以后做技术准备可以学习研究以下。但是,我个人觉得就目前来说,在实际项目慎用此框架。下面简单的介绍以下这个EF。在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品。用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程序所需的代码量并减 阅读全文
posted @ 2012-05-10 14:59 $tommix 阅读(2879) 评论(0) 推荐(0) 编辑
摘要: .NET RIA Service入门教程目录.NET RIA Service入门系列文章一:建立项目.NET RIA Service入门系列文章二:建立数据库.NET RIA Service入门系列文章三:生成ORM模型.NET RIA Service入门系列文章四:建立Domain Service Class.NET RIA Service入门系列文章五:Silverlight 3操作数据库.NET RIA Service入门系列文章六:排序和查询.NET RIA Service入门系列文章七:数据验证.NET RIA Service入门系列文章八:自定义用户身份验证.NET RIA Ser 阅读全文
posted @ 2012-05-10 14:41 $tommix 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 这段时间一直没抽出时间来研究Silverlighit RIA Services。总觉得这系列文章还没有什么价值。一直在内Cool超人心中对RIA Services都存在一个不美完的地方。那就是它的登陆功能,之前已经写过这个功能,也能正常运行。可是。。有很多数据库管理系统开发过种中必不可少的用户组权限功能,所以今天送上一个美完的Silverlight RIA Service登陆示例。希望可以帮助使用RIA Service的朋友更好地使用。这个示例中,代码是相当简单的。我主要提两个地方:1.在web项目里的web.config文件里要定义如下配置信息<system.web><ro 阅读全文
posted @ 2012-05-10 14:37 $tommix 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 很多时候我们可能十分希望自定义一些方法可以让sl端直接调用,对SOA的设计思想,这个是十分有作用的,因为一个函数就完成一个功能,这是SOA最常见不过的设计。这里我将讲述一下.net ria services在sl应用中如何自定义函数.1.在.net ria service端先定义一个方法,并返回一个自定义的类,这个类必须有主键,可以通过“[Key]”标识一个字段为主键。并把此函数用“[ServiceOperation]”标识,这样sliverlgiht端才会出来这个函数。1: [EnableClientAccess()]2: public class myDomainService : D.. 阅读全文
posted @ 2012-05-10 14:29 $tommix 阅读(176) 评论(0) 推荐(0) 编辑
摘要: .NET RIA Service在实际应用中提供了方便快速的数据访问层,那么身份验证也是一个比较头痛的事情,这个问题曾经也一度困扰着我。最到最近.NET RIA Service home的出现才找到最合适自己使用的方法,不过还是有一些bug,可能是.NET RIA Service还是ctp版的原因。这里简单讲述一下bug:客户端可以取得roles的列表,可惜在domain service class里的定义不生效。希望这个问题在.NET RIA Service的下个版本会解决。在常规使用中我更喜欢使用自定义的表去管理程序的用户,这样灵活度比较高,而且心中也有数,所以一直不想用membershi 阅读全文
posted @ 2012-05-10 14:28 $tommix 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 由于.net ria service提供的不只是给silverlight的客户端使用,还可以给asp.net,win等程序的调用,所以我们很多时候要有效的验证所有的客户端提交的数据都合法的话就必须要从.net ria service中做数据提交前的验证,这样可以减少很多数据错误,和节省开发周期,框架也清新很多。1)在新建Domain service class 的进候把Generate associated classes fro metadata也钩上。image.png(61.37 K)12/6/2009 9:08:28 AM点击ok后会生成一个以Domain service class名 阅读全文
posted @ 2012-05-10 14:26 $tommix 阅读(184) 评论(0) 推荐(0) 编辑

导航