支持主从表BLL单独提交明细表优化UpdateDetailKey方法|C/S框架网

  支持主从表BLL单独提交明细表优化UpdateDetailKey方法|C/S框架网

有些特殊情况下,我们只需要修改和提交明细表的数据,C/S框架预设提交主从表的(只修改明细表的情况下,主表的一条记录同时提交),基于性能优化与提升用户体验,针对UpdateDetailKey方法进行优化。

C# Code:

/// <summary>
/// 更新明细表的外键
/// </summary>
/// <param name="detail">明细表</param>
/// <param name="foreignFieldName">外键字段名</param>
/// <param name="foreignKeyValue">外键值</param>
protected void UpdateDetailKey(DataTable detail, string foreignFieldName, string foreignKeyValue)
{
   if (detail == null) return;
   
   if (String.IsNullOrEmpty(foreignFieldName))
   throw new Exception("明细表没指定外键, 请检查表模型定义!");
   
   foreach (DataRow row in detail.Rows)
   {
      //仅新增记录才需要更新外键,注意状态的使用
      if (row.RowState == DataRowState.Added)
      {
         if (String.IsNullOrEmpty(foreignKeyValue))
         throw new Exception("外键值为空!");
         else
         row[foreignFieldName] = foreignKeyValue;
      }
   }
}

//来源:C/S框架网(www.csframework.com) QQ:23404761


以上代码适合C/S开发框架所有版本,亲爱的用户们请知悉。

主从表BLL继承bllBaseBusiness基类,提交数据是调用BLL.Update(DataSet)方法,DataSet参数预设是最少两个DataTable,优化UpdateDetailKey方法后,您只需要添加明细表DataTable即可。

注意:单独提交明细表时,要确保明细表不能有Added状态的记录,因为DAL层的_UpdateSummaryKeyMode参数预设值=UpdateKeyMode.OnlyDocumentNo(自动生成流水号),此参数是针对主表的主建自动生成流水号码,若违法此规则,保存数据时会抛出异常,提示:外键值不能为空。

支持主从表BLL单独提交明细表优化UpdateDetailKey方法|C/S框架网

参考文档:

1.主从表的主表模型重点参数配置|UpdateKeyMode|ORM Model


2.手动和自动生成业务单据号码UpdateKeyMode详解(1)


3.更新主表的主键模式UpdateKeyMode枚举详解(2)



版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

支持主从BLL单独提交明细表优化UpdateDetailKey方法|C/S框架
更新明细表的外键-优化方法UpdateDetailKey|C/S框架
使用bllBaseDataDict类提交业务单据(主从)的明细表实例|C/S框架
C/S系统开发框架多级明细表(三级/主从)数据结构参考
CSFramework代码生成器自动生成主从界面-C/S框架
主从界面自动计算明细表合计汇总金额数量
CS开发框架旗舰版主从(多级明细表)实例,自动生成主从代码
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从(或多)数据
Winform开发框架测试程序之测试环境配置|C/S框架
C/S开发框架DAL层提交数据报错"外键值为空!"解决方案。
bllBaseDataDict.CreateDataBinder方法详解及性能优化
DevExpress XtraReport 开发指南 - 主从报表设计(C#)
C/S系统快速开发框架数据操作窗体(单主从窗体)按钮事件
C/S服务器框架WCF框架 - C/S框架
VS2015源码管理器-GIT解决冲突并提交结果|C/S框架
校验明细表数据ValidatingDetailData方法有BUG
GridControl表格实现主从展示数据(Master/Detail)
C#.Net快速开发框架 - ORM ,BLL,DAL三者关系
使用dalBaseDataDict类提交数据
快速软件开发框架|C/S框架钜献