更新主表的主键模式UpdateKeyMode枚举详解(2)
更新主表的主键模式UpdateKeyMode枚举详解(2)
1. None: 单据号码由用户手工输入。
C# Code:
/// <summary>
/// 更新主表的主键模式
/// </summary>
public enum UpdateKeyMode
{
/// <summary>
/// 未指定.单据号码由用户手工输入
/// </summary>
None,
/// <summary>
/// 自动生成流水号
/// </summary>
OnlyDocumentNo,
/// <summary>
/// 自动生成36位GUID(全球唯一标识)
/// </summary>
OnlyGuid
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
/// <summary>
/// 更新主表的主键模式
/// </summary>
public enum UpdateKeyMode
{
/// <summary>
/// 未指定.单据号码由用户手工输入
/// </summary>
None,
/// <summary>
/// 自动生成流水号
/// </summary>
OnlyDocumentNo,
/// <summary>
/// 自动生成36位GUID(全球唯一标识)
/// </summary>
OnlyGuid
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
模拟主从表结构:
主表M(SONO varchar(36)),SONO字段为主表的主键。
从表D(RowID varchar(36), SONO varchar(36)),RowID为明细表主键,SONO为明细表的外键。
UpdateKeyMode枚举类型详解:
1. None: 单据号码由用户手工输入。
新增记录时必须给主表的SONO字段手工赋值,如:SO8888888。
提交数据前,必须给从表的SONO字段赋值为SO8888888,若由多条记录可循环处理逐条赋值。
明细表的RowID务必在新增明细记录时赋值(取GUID值)。
通过以后处理即完成主外键设置,可提交数据。
重点:若采用此模式,ORM模型的 isDocFieldName 参数必须设为false!
2. OnlyDocumentNo:单据号码自动生成。
若采用单据号码自动生成的模式,首先在主表的ORM Model 指定主键对应的字段名,参考下图:
ORM_TableAttribute:定义资料表对应的ORM模型的特性类,指定PrimaryKey的字段名,如:INNO。
ORM_FieldAttribute:定义每个字段对应的ORM模型的特性类。
若isPrimaryKey=true,表示该字段为主键。
若isDocFieldName=true,表示该字段为字段生成的单据号码(流水号码)。
_KeyName=INNO:定义该表的主键字段名的静态变量(也可用常量定义)。
参考上图红圈重点标注的配置信息,即可正确提交数据,单据号码会自动生成,若同时提交明细表资料,外键的值开发框架底层会自动赋值处理。
3. OnlyGUID:自动生成36位GUID(全球唯一标识)。
新增记录时必须给主表的SONO字段指定GUID,如:aa870685-a11b-45e9-b1c0-8e9eac326afd。
提交数据前,必须给从表的SONO字段赋值为 aa870685-a11b-45e9-b1c0-8e9eac326afd,
若由多条记录可循环处理逐条赋值。
明细表的RowID务必在新增明细记录时赋值(取GUID值)。
通过以后处理即完成主外键设置,可提交数据。
重点:若采用此模式,ORM模型的 isDocFieldName 参数必须设为false!
参考文章:
手动和自动生成业务单据号码UpdateKeyMode详解(1)
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网