以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  Re: 非超牛勿入——关于O/R映射的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=11814)


--  作者:admin
--  发布时间:11/9/2004 2:26:00 AM

--  Re: 非超牛勿入——关于O/R映射的问题


发信人: Birdshome (雀巢), 信区: DotNET
标  题: Re: 非超牛勿入——关于O/R映射的问题
发信站: BBS 水木清华站 (Tue Jan 13 10:50:35 2004), 转信

如果做一个单表 mapping,3\4\5 确实暂时无法解决。

1、使用 SqlDataReader 就能获得本地 Type 和 SqlDbType 的对应;
2、给每个 mapping 对象一个标志位,set 的时候更改标志,销毁对象时更新数据库;

6、使用2中的标志位,只更新内存中修改过的对象,减少冗余更新;
7、可以设置别名列,传入 Select Sql 语句。

其实有的问题可以简化和分步的,关系复杂的多表查询结果基本都是不能更新的,

他们没有完整的主键约束,我们都只是使用其结果集来显示或运算,真正的数据

更新主要都是对应在单表和简单视图上。我们用 DataSet,控件数据邦定,就能

完成大部分的数据载入和显示操作,如果一各 O/R 模块功能太全,难免过于臃肿,

即使不消耗数据库资源,本省存在于内存中也是很大的开销。就像要更新一两个  

fields,还是 Update table set field1 = '...'[, field2 = '...'] Where ...  

最快最经济。


【 在 luckyeagle (啼鸟还知如许恨,料不啼清泪长啼血。) 的大作中提到: 】
∶多谢各位超牛。尤其感谢Erratic。
∶小弟过去不知道有ObjectSpace这样好东东,准备自己做一个O/R Mapping。
∶但有七大难题不能解决:
∶1、怎样在一个Sql查询结果中的列值与对象之间进行转换?
∶2、怎样在已映射对象的状态发生变化时有效地发布Sql更新?
∶3、怎样为对象关系建立模型?
∶4、怎样为继承建立模型?
∶5、怎样为跨表对象建立模型?
∶6、怎样降低对RDBMS的调用数量?
∶7、怎样执行集合函数?
∶现在只能解决1,5两个问题。
∶...................

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.224.*]
上一篇
返回上一页
回到目录
回到页首
下一篇



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms