Rafy 框架 - 流水号插件

Rafy 框架又添新成员:流水号插件。本文将解释 Rafy 框架中的流水插件的场景、使用方法。
场景
在开发各类数据库应用系统时,往往需要生成从一开始的流水号,有时还需要按月或者按日进行独立生成,如下面的格式:2016031800000001、2016031800000002……。
设计本插件用于生成上述相应格式的编号。
使用方法
添加插件
1.通过 Nuget Package Manager 搜索并安装 Rafy.SerialNumber 插件。
2.在 DomainApp 中添加该插件;同时,设置该插件所对应的数据库配置名:
class JXCApp : DomainApp
{
protected override void InitEnvironment()
{
//配置插件所对应的数据库配置名。
Rafy.SerialNumber.SerialNumberPlugin.DbSettingName = "TestDb"; //添加流水号插件到 Rafy 应用程序集中。
RafyEnvironment.DomainPlugins.Add(new Rafy.SerialNumber.SerialNumberPlugin()); base.InitEnvironment();
}
}
使用插件
1.生成数据库。
该插件中自带两个实体:SerialNumberInfo 、SerialNumberValue ,所以 Rafy 会为其在数据库中添加相应的两张表。
2.添加流水号生成规则。
SerialNumberInfo 表示定义的流水号生成规则信息。而 SerialNumberValue 则表示生成的流水号的具体值。所以要生成流水号,必须先为其定义生成规则。可以使用 SerialNumberController 进行简单的每日规则创建,示例如下:
var controller = DomainControllerFactory.Create<SerialNumberController>();
var sni = controller.CreateDailySerialNumberInfo("流水号规则-1");
CreateDailySerialNumberInfo 方法内部其实非常简单,开发者可以参考以下代码创建新的生成规则,如下:
/// <summary>
/// 创建一个以日期进行分组生成编号的规则,存储到仓库中,并返回。
/// 性能-仓库访问次数:1。
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public SerialNumberInfo CreateDailySerialNumberInfo(string name, string format = "yyyyMMdd********")
{
var sni = new SerialNumberInfo
{
Name = name,
TimeGroupFormat = "yyyyMMdd",
Format = format,
RollValueStart = 1,
RollValueStep = 1,
}; var infoRepo = RF.Concrete<SerialNumberInfoRepository>();
infoRepo.Save(sni); return sni;
});
3.生成流水号。
使用以下代码生成流水号即可:
var next = controller.GenerateNext("流水号规则-1");
Assert.AreEqual("2016031800000001", next);
next = controller.GenerateNext("流水号规则-1");
Assert.AreEqual("2016031800000002", next);
next = controller.GenerateNext(sni);
Assert.AreEqual("2016031800000002", next);
PS:该文已经纳入《 Rafy 用户手册》中。
Rafy 框架 - 流水号插件的更多相关文章
- Rafy 框架 - 幽灵插件(假删除)
Rafy 框架又添新成员:幽灵插件.本文将解释该插件的场景.使用方法.原理. 场景 在开发各类数据库应用系统时,往往需要在删除数据时不是真正地删除数据,而只是把数据标识为'已删除'状态.这些数 ...
- Rafy 框架 - 时间戳插件
本文将解释 Rafy 框架中的时间戳插件的场景.使用方法.原理. 场景 在开发各类数据库应用系统时,业务领域实体往往需要包含"创建时间"."最后更新时间".&q ...
- 使用 NuGet 下载最新的 Rafy 框架及文档
为了让开发者更方便地使用 Rafy 领域实体框架,本月,我们已经把最新版本的 Rafy 框架程序集发布到了 nuget.org 上,同时,还把 RafySDK 的最新版本发布到了 VisualStud ...
- Rafy 框架 - 使用 SqlTree 查询
本文介绍如何使用 Rafy 框架中的 Sql Tree 查询: 除了开发者常用的 Linq 查询,Rafy 框架还提供了 Sql 语法树的方式来进行查询. 这种查询方式下,开发者不需要直接编写真正的 ...
- Rafy框架
l 什么是Rafy框架? -------- Rafy 是一个面向企业级开发的插件化快速开发框架. l Rafy的优点是什么? ------快速开发.产品线工程.一套代码可同时生成并运行 C/S.单 ...
- Rafy 框架:领域控制器
本文简要说明如何使用 Rafy 框架中的领域控制器. 简介 领域控制器是 Rafy 框架中用于封装领域逻辑的主要方式. 在控制器中,开发者可以封装大量的业务逻辑,并向外暴露业务接口.内部的逻辑在实现时 ...
- Rafy 框架 - 通用查询条件(CommonQueryCriteria)
在应用开发过程中,有 80% 的场景下,开发者所需要的实体查询,查询条件中其实都是一些简单的属性匹配,又或是一些属性匹配的简单组合.Rafy 为这样的场景提供了更为方便使用的 API:CommonQu ...
- 一位同事对 Rafy 框架的一些建议及我的回复
下面是一位同事对当前的产品开发框架提出的一些建议,以及我的回复.我觉得一些问题提得有一定的代表性,在征得本人同意后,将本邮件发布在博客中. 同时,也非常希望对框架.产品有好的建议的小伙伴,都可以给我发 ...
- 快速开发~Rafy框架的初步认识
当我们开始使用EF的同时,是不是就会更好的认识了其他的ORM框架,最近接触了Rafy的使用,感觉还是蛮有兴趣去学习的,虽然最初的我到现在看的并不深入,但是我个人感觉还是可以简单地做一些总结的啦,或许语 ...
随机推荐
- 了不起的 nodejs-TwitterWeb 案例 bug 解决
了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...
- npm package.json属性详解
概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...
- ES6(块级作用域)
我们都知道在javascript里是没有块级作用域的,而ES6添加了块级作用域,块级作用域能带来什么好处呢?为什么会添加这个功能呢?那就得了解ES5没有块级作用域时出现了哪些问题. ES5在没有块级作 ...
- arcgis api for js入门开发系列四地图查询(含源代码)
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的 上一篇实现了demo的地图工具栏,本篇新增地图查询功能, ...
- 非技术1-学期总结&ending 2016
好久好久没写博客了,感觉动力都不足了--12月只发了一篇博客,好惭愧-- 今天是2016年最后一天,怎么能不写点东西呢!! 学期总结 大学中最关键一年的第一个学期,共4个月.前20天在学网络方面的,当 ...
- Linux基础介绍【第七篇】
linux用户分类 超级用户:UID=0,root 普通用户:UID 500起,由超级用户或具有超级用户权限的用户创建的用户. 虚拟用户:UID 1-499,为了满足文件或服务启动的需要而存在,一般都 ...
- linux-图形化远程管理协议
远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...
- Linux下的C Socket编程 -- server端的继续研究
Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...
- Storm介绍(一)
作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 内容简介 本文是Storm系列之一,介绍了Storm的起源,Storm ...
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...