大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> .NET 的对象关系持久化机制(1)

.NET 的对象关系持久化机制(1)

时间: 2021-07-31 作者:daque

翻译的手段一是锤炼e文,二是为学些货色,即使这是有任何翻译题目,请报告我一声(mailto:wonderf2100@sina.com 大概 http://wonderf.blogone.net/)因为自己e文有限,缺点还请包容。原文:http://www.15seconds.com/issue/040112.htm要害字:orp objectspaces 东西 联系 长久.net 的东西联系长久化体制第一章 对于一种新的数据考察办法引见在几个礼拜前,.net东西联系长久化(object-relational persistence for .net)的喜好者仍旧百里挑一。她们觉得,不妨用一种特意的数据供给办法从运用步调中取消那些繁杂的ado.net代码和缩小贸易论理代码。究竟上海大学普遍的.net开拓者,蓄意不妨少写些数据考察层(ado.net)的代码即使你加入了pdc聚会,你不妨从很多线索中领会到microsoft的一个新的数据考察战略。在whidbey和之后的visual studio 本子,将会洪量减少orp(东西联系长久化)功效。令我欣喜的是有很多人加入了我和dave foderick把持的object-relational birds of a feather (bof)聚会。我向来憧憬聚会 大概有10几位关心orp的专科人士介入,计划对于orp,以及暂时.net or 东西,聊聊各自的体味。出人意料的是,有胜过100位的人士介入了这次计划。有扶助者,阻碍者,少许感爱好的人,以至少许or的东西厂商,氛围很喧闹。所有下昼,microsoft的 objectspaces team 在一个挤满人的屋子里演练了orp framework。东西联系这种本领并不是只用来objectspaces.你不妨在微软的下个sql server 本子yukon中找到很多or(object-relational)陈迹。yukon 不妨运转鉴于clr的代码,运用.net谈话编写的保存进程和clr典型。交易东西不妨经过ado.net的参数传播到保存进程,而后被.net保存进程代码领会成联系构造,除此除外,yukon 表的 数据列不妨是包括鉴于clr的搀杂典型。假如如许的一种情景,一个交易东西动作参数被传播到yukon,这个东西不妨长久的动作一个列值被生存到数据库,要比领会成联系构造再惠存数据库好的多。假如在一个运用中,有一个person类用来生存部分的大略消息,囊括id,name,birthday以次是这个person表 在sql server 2000 中的ddl设置create table [dbo].[person] ([id] [int] identity (1, 1) not null , [name] [varchar] (50) collate sql_latin1_general_cp1_ci_as not null , [birthday] [datetime] null ) on [primary]而在yukon中你不妨如许写:create table [dbo].[person] ([id] [int] identity (1, 1) not null ,[person] [person] not null ) on [primary]两者重要的各别之处是:yukon ddl中含有一个person典型的列,而person是.net东西,不言而喻,在yukon中你不妨径直定制一个.net东西典型的列。 为了使这个column能包含clr典型,开始这个典型将被编写翻译,而后安置到sql server。 看一个person类的例子:using system;using system.data.sql;using system.data.sqltypes;using system.runtime.serialization; namespace scottbellware.personexample{ /// <summary> /// represents a person. /// </summary> [serializable] [sqluserdefinedtypeattribute(format.userdefined)] public class person { private int id;private string name;private datetime birthday; public int id {get{return this.id;}set{this.id = value;}} public string name {get{return this.name;}set{this.name = value;}}public datetime birthday{get{return this.birthday;}set{this.birthday = value;}}}}当这个类编写翻译成dll文献后,你不妨在sql server yukon 中备案它,这是备案dll的t-sql语句:create assembly personexample from 'c:\assemblies\scottbellware.personexample.dll'如许就在yukon里创造了这个类,实质上是在yukon里为这个类备案了个别号,yukon会援用这个包括在dll里的clr典型。在上头的ddl 内外设置了一个person典型的列,以是须要在yukon中创造这个典型创造的代码如次:create type personexternal name [personexample]:person你不妨运用带参数的dml语句向person内外插入一个person范例insert into person (person) values (@person)即使你有运用ado.net 1.x dataparameter 东西的体味,上头的dml语句大概会惹起你的猎奇。在ado .net 1.0本子中,dataparameter 东西只不妨包装标量值。上头的吩咐语句表露了在ado .net 2.0中sqlparameter class的变换。你不妨经过代码中往数据库传入搀杂典型。 往数据库里传入一个定制的典型的所写代码格局一致于经过ado .net 1.x dataparameter objects.往数据库传入标量值。在ado .net 2.0中,sqlparameter 东西范例被经过援用传播,sqlparameter类新增了一个udttypename属性。运用这个属性,来指定sqlparameter范例,用来传播搀杂典型的 包装参数名字。同样,在sqldbtype 列举典型里也减少了sqldbtype.udt典型,来指定搀杂典型或用户设置典型的值。以次的例子演示了ado.net2.0存户端代码实行一个带有搀杂参数的查问。假如仍旧生存一个名为connection的sqlconnection 东西范例和一个名为person的person东西范例,同声数据库贯穿仍旧被翻开。// create a command from the connection object.sqlcommand insertcommand = conection.createcommand();// assign the dml to the command command text.insertcommand.commandtext = nsert into person (person) values (@person)?// parameter object to encapsulate the person instance.sqlparameter parameter = insertcommand.parameters.add( person? sqldbtypes.udt);// set the type name of the parameter抯 encapsulated complex type.parameter.udttypename = cottbellware.personexample.person?// assign the person instance to the parameter抯 value.parameter.value = person;// execute the command.command.executenonquery();从深刻看,longhorn 将在平台级别带给咱们or。longhorn的文献体例鉴于下一代的sql server本领,而objectspaces将在个中表演要害的脚色,仍旧变成 longhorn api 中的基础东西。你会在微软将要颁布mbf中看到东西联系长久化体制。mbf供给笼统体制来刻画交易东西和创造贸易运用的交易进程,同声它也不妨被objectspaces维持长久化。东西联系长久化在保守的数据考察中运用很少,而在.net的数据考察形式和体制中获得运用。.net的数据考察吩咐和截止经过数据考察层的api传播,纵然那些是在东西联系长久的框架结构内。东西联系长久框架结构索取底层api 与ado.net索取底层的当地存户端库运用一致的本领,而经过更高档的笼统,存户端代码变得更明显,可读。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.