增加对数据库主键为numberic的支持
This commit is contained in:
yubaolee
2021-03-13 16:21:56 +08:00
parent f7088c9d29
commit 9c2d044d12
38 changed files with 911 additions and 151 deletions

View File

@@ -0,0 +1,32 @@
using System.ComponentModel;
using Yitter.IdGenerator;
namespace OpenAuth.Repository.Core
{
/// <summary>
/// 数据库Id为numberic类型的数据实体使用该基类用法同Entity
/// 数据库Id字段为numberic(16,0)或以上长度的整型采用雪花算法生成Id。
/// </summary>
public class LongEntity :BaseEntity
{
[Browsable(false)]
public long Id { get; set; }
public override bool KeyIsNull()
{
return Id == 0;
}
/// <summary>
/// 采用雪花算法计算Id
/// </summary>
public override void GenerateDefaultKeyVal()
{
// 全局初始化设置WorkerId默认最大2^16-1。初始化过程全局只需一次且必须最先设置
var options = new IdGeneratorOptions(){ WorkerId = 1};
IIdGenerator IdHelper = new YitIdGenerator(options);
// 初始化以后就可以在需要的地方调用方法生成ID。
Id = IdHelper.NewLong();
}
}
}