ORM: 开发自己的Data Access Application Block - Part IIII
2008-12-06 10:15:37 来源:WEB开发网我的解决方案是:
为了避免数据库中数据的冲突,我们数据更新的顺序是:Deleted Data->Modified Data->Added Data;考虑到表之间的主子关系,对于Added Data和Modified Data,我们应该先修改Parent Table,后修改Child,而对Deleted Data顺序却恰好相反。由于我们 不应该对DataSet中的Table的数量和关系做出任何假设,我们需要以一种递归的过程完成数据的更新。本着这样一个原则,我们来看我们的实现:
public void UpdateData(DataSet dataInfo)
{
//Deleted data.
if (dataInfo.GetChanges(DataRowState.Deleted) != null)
{
foreach (DataTable table in dataInfo.Tables)
{
this.UpdateDependentTable(table, DataRowState.Deleted);
}
}
//Modified Data.
if (dataInfo.GetChanges(DataRowState.Modified) != null)
{
foreach (DataTable table in dataInfo.Tables)
{
this.UpdateDependentTable(table, DataRowState.Modified);
}
}
//Added Data.
if (dataInfo.GetChanges(DataRowState.Added) != null)
{
foreach (DataTable table in dataInfo.Tables)
{
this.UpdateDependentTable(table, DataRowState.Added);
}
}
}
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››自己动手写iPhone wap浏览器之界面架构篇
- ››自己也能DIY个性真人QQ表情
- ››自己动手!巧法让酷狗动感歌词更完美
- ››自己编译Google Android内核的Linux源码
- ››自己写的一个jquery模板引擎(json比较好用)
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››自己定义Android堆内存大小
- ››开发移动 Web Ajax 应用
更多精彩
赞助商链接