介绍 在几个星期前,.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 ,