Rafy 框架 - 流水号插件
2016-03-18 12:02
351 查看
Rafy框架又添新成员:流水号插件。本文将解释Rafy框架中的流水插件的场景、使用方法。
场景
在开发各类数据库应用系统时,往往需要生成从一开始的流水号,有时还需要按月或者按日进行独立生成,如下面的格式:2016031800000001、2016031800000002……。
设计本插件用于生成上述相应格式的编号。
使用方法
添加插件
1.通过NugetPackageManager搜索并安装Rafy.SerialNumber插件。
2.在DomainApp中添加该插件;同时,设置该插件所对应的数据库配置名:
classJXCApp:DomainApp { protectedoverridevoidInitEnvironment() { //配置插件所对应的数据库配置名。 Rafy.SerialNumber.SerialNumberPlugin.DbSettingName="TestDb"; //添加流水号插件到Rafy应用程序集中。 RafyEnvironment.DomainPlugins.Add(newRafy.SerialNumber.SerialNumberPlugin()); base.InitEnvironment(); } }
使用插件
1.生成数据库。
该插件中自带两个实体:SerialNumberInfo、SerialNumberValue,所以Rafy会为其在数据库中添加相应的两张表。
2.添加流水号生成规则。
SerialNumberInfo表示定义的流水号生成规则信息。而SerialNumberValue则表示生成的流水号的具体值。所以要生成流水号,必须先为其定义生成规则。可以使用SerialNumberController进行简单的每日规则创建,示例如下:
varcontroller=DomainControllerFactory.Create<SerialNumberController>();
varsni=controller.CreateDailySerialNumberInfo("流水号规则-1");
CreateDailySerialNumberInfo方法内部其实非常简单,开发者可以参考以下代码创建新的生成规则,如下:
///<summary>
///创建一个以日期进行分组生成编号的规则,存储到仓库中,并返回。
///性能-仓库访问次数:1。
///</summary>
///<paramname="name"></param>
///<returns></returns>
publicSerialNumberInfoCreateDailySerialNumberInfo(stringname,stringformat="yyyyMMdd********")
{
varsni=newSerialNumberInfo
{
Name=name,
TimeGroupFormat="yyyyMMdd",
Format=format,
RollValueStart=1,
RollValueStep=1,
};
varinfoRepo=RF.Concrete<SerialNumberInfoRepository>();
infoRepo.Save(sni);
returnsni;
});
3.生成流水号。
使用以下代码生成流水号即可:
varnext=controller.GenerateNext("流水号规则-1");
Assert.AreEqual("2016031800000001",next);
next=controller.GenerateNext("流水号规则-1");
Assert.AreEqual("2016031800000002",next);
next=controller.GenerateNext(sni);
Assert.AreEqual("2016031800000002",next);
PS:该文已经纳入《
相关文章推荐
- Symfony2函数用法实例分析
- iOS多线程之NSThread
- Activity向Fragment传值
- zabbix 自定义 key
- 网易游戏技术岗在线编程题(二)
- 浅析Python基础-流程控制
- BaskSpace键控制
- 温故3:Java集合框架中的几个常用接口
- ubuntu 花屏、卡死
- mac os安装wget
- 网易游戏技术岗在线编程题(二)
- Android控件测量相关
- UI控件--ImageView和ImageButton
- CDOJ 1288 旅游的Final柱 构造题
- [软件测试_LAB1]安装junit和hamcrest及其使用
- 软件测试入门 1—— junit 单元测试
- mysql 设置密码四种方式转载
- 简单讲解Linux系统中PS1默认提示符的设置
- Mindjet MindManager 2016 license key(激活码)
- SQL SERVER 自动监控数据库异常,自动发送邮件通知