-- 作者: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.*] 上一篇 返回上一页 回到目录 回到页首 下一篇
|