SQL2005 CLR: UDT用户定义类型 part3

博客总结了数据库开发历程,包括创建UDT、表、中间层和客户端。提出能否直接操作数据库的问题,认为暂时数据库应提供逆向代码生成。还构想未来数据库应视为OO数据库,具备从对象设计、对象持久化等多方面特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一节中,我们看到了UDT带来了新的希望。总结一下开发历程:
1. 创建UDT,定义数据元素
2. 创建表,定义表关系,创建Triger
3. 创建中间层,可能是基于CLR的SP/Function或者是外部的程序。
4. 创建客户端。

问题:
要不要OR Mapping了?SQL2005加入了CLR支持,即使我们用CLR编写了SP/UDT, 但是,不论在SP中还是外部数据层,都需要通过SQL作为中介来访问数据。能不能通过Remoting或者其它方式,直接得到SP/表/DB的强类型引用,直接操作数据库?比如:

DB db = DB.Instance;
string r1 = db.MyStoredProcedure1(p1,p2); //call SP.
int r2 = db.MyFunction1(p1,p2); //call function
DB.MyUserCollection tbl = db.MyUser.Select(“name = 'abc'“); //select
MyUser user = tbl[0];
string postCode = user.Address.PostCode; //表应该是OR Mapping的。

暂时来看,数据库应该提供对逆向代码生成。

作为设计者,我觉得未来版本的数据库应该把自己看成OO数据库,应该具有一下特征:
1. 在数据库设计上直接从对象开始设计。
2. 对象持久化为表。关系数据库表作为内部运作机制,不对外。
3. 没有UDT,一切都是UDT,
4. 对象映射成XML还是表还是普通字段只是持久化属性Attribute的问题。
5. 索引应该根据查询智能创建,失效。
6. 数据库可以被作为对象直接引用。
7. 数据库权限采用CLR统一的Principal
8. 数据库和虚拟机在使用上无缝合并,成为一个系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值