WEB开发网
开发学院数据库MSSQL Server ORM: 开发自己的Data Access Application Block -... 阅读

ORM: 开发自己的Data Access Application Block - Part IIII

 2008-12-06 10:15:37 来源:WEB开发网   
核心提示:我的解决方案是:为了避免数据库中数据的冲突,我们数据更新的顺序是:Deleted Data->Modified Data->Added Data;考虑到表之间的主子关系,ORM: 开发自己的Data Access Application Block - Part IIII,对于Added Data和Modi

我的解决方案是:

为了避免数据库中数据的冲突,我们数据更新的顺序是: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);
        }
      }
    }

1 2 3 4 5  下一页

Tags:ORM 开发 自己

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接