mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-05-09 15:18:00 +08:00
32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
![]() |
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|