Skip to content

表实体

继承实体

主键实体

需要主键 Id 时继承Entity

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : Entity
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong

创建实体

需要创建信息时继承EntityAdd

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityAdd
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者, 长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?

修改实体

需要修改信息时继承EntityUpdate

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityUpdate
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者, 长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?

删除实体

需要假删除时继承EntityDelete

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityDelete
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者,长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?
IsDeleted是否删除,默认 falsebool

版本实体

需要设置行锁(乐观锁)版本号时继承EntityVersion

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityVersion
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者,长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?
IsDeleted是否删除,默认 falsebool
Version版本,默认 0long

数据权限实体

需要数据权限时继承EntityData

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityData
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
OwnerId拥有者 Idlong?
OwnerOrgId拥有者部门 Idlong?
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者,长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?
IsDeleted是否删除,默认 falsebool

租户实体

需要隔离不同租户数据时继承EntityTenant

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityTenant
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
TenantId租户 Id,不可修改long?
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者,长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?
IsDeleted是否删除,默认 falsebool

租户数据权限实体

同时需要租户和数据权限时继承EntityTenantWithData

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityTenantWithData
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
TenantId租户 Id,不可修改long?
OwnerId拥有者 Idlong?
OwnerOrgId拥有者部门 Idlong?
CreatedUserId创建者 Id,不可修改long?
CreatedUserName创建者,长度 50,不可修改string
CreatedUserRealName创建者姓名, 长度 50,不可修改string
CreatedTime创建时间,不可修改DateTime?
ModifiedUserId修改者 Idlong?
ModifiedUserName修改者, 长度 50string
ModifiedUserRealName修改者姓名, 长度 50string
ModifiedTime修改时间DateTime?
IsDeleted是否删除,默认 falsebool

会员实体

需要隔离不同会员数据时继承EntityMember

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityMember
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
MemberId会员 Id,不可修改long?
CreatedTime创建时间,不可修改DateTime?
ModifiedTime修改时间,不可创建DateTime?
IsDeleted是否删除,默认 falsebool

会员租户实体

同时需要会员和租户时继承EntityMemberWithTenant

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : EntityMemberWithTenant
{
}

属性说明

属性说明类型
Id主键 Id,默认雪花 Idlong
TenantId租户 Id,不可修改long?
MemberId会员 Id,不可修改long?
CreatedTime创建时间,不可修改DateTime?
ModifiedTime修改时间,不可创建DateTime?
IsDeleted是否删除,默认 falsebool

继承接口

添加接口

需要创建信息时继承IEntityAdd<TKey>

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IEntityAdd<long>
{
    /// <summary>
    /// 创建者Id
    /// </summary>
    [Description("创建者Id")]
    [Column(Position = -22, CanUpdate = false)]
    public virtual long? CreatedUserId { get; set; }

    /// <summary>
    /// 创建者
    /// </summary>
    [Description("创建者")]
    [Column(Position = -21, CanUpdate = false), MaxLength(50)]
    public virtual string CreatedUserName { get; set; }

    /// <summary>
    /// 创建者姓名
    /// </summary>
    [Description("创建者姓名")]
    [Column(Position = -21, CanUpdate = false), MaxLength(50)]
    public virtual string CreatedUserRealName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [Description("创建时间")]
    [Column(Position = -20, CanUpdate = false, ServerTime = DateTimeKind.Local)]
    public virtual DateTime? CreatedTime { get; set; }
}

修改接口

需要修改信息时继承IEntityUpdate<TKey>

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IEntityUpdate<long>
{
    /// <summary>
    /// 修改者Id
    /// </summary>
    [Description("修改者Id")]
    [Column(Position = -12, CanInsert = false)]
    [JsonProperty(Order = 10000)]
    [JsonPropertyOrder(10000)]
    public virtual long? ModifiedUserId { get; set; }

    /// <summary>
    /// 修改者
    /// </summary>
    [Description("修改者")]
    [Column(Position = -11, CanInsert = false), MaxLength(50)]
    [JsonProperty(Order = 10001)]
    [JsonPropertyOrder(10001)]
    public virtual string ModifiedUserName { get; set; }

    /// <summary>
    /// 修改者姓名
    /// </summary>
    [Description("修改者姓名")]
    [Column(Position = -11), MaxLength(50)]
    [JsonProperty(Order = 10001)]
    [JsonPropertyOrder(10001)]
    public virtual string ModifiedUserRealName { get; set; }

    /// <summary>
    /// 修改时间
    /// </summary>
    [Description("修改时间")]
    [JsonProperty(Order = 10002)]
    [JsonPropertyOrder(10002)]
    [Column(Position = -10, CanInsert = false, ServerTime = DateTimeKind.Local)]
    public virtual DateTime? ModifiedTime { get; set; }
}

删除接口

需要假删除时继承IDelete

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IDelete
{
    /// <summary>
    /// 是否删除
    /// </summary>
    [Description("是否删除")]
    [Column(Position = -9)]
    public virtual bool IsDeleted { get; set; } = false;
}

版本接口

需要设置行锁(乐观锁)版本号时继承 IVersion

每次修改整个实体时会附带当前的版本号判断(修改成功累加版本号,失败时抛出异常)

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IVersion
{
    /// <summary>
    /// 版本
    /// </summary>
    [Description("版本")]
    [Column(Position = -30, IsVersion = true)]
    public virtual long Version { get; set; }
}

租户接口

需要隔离不同租户数据时继承ITenant

按租户字段区分

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : ITenant
{
    /// <summary>
    /// 租户Id
    /// </summary>
    [Description("租户Id")]
    [Column(Position = 2, CanUpdate = false)]
    [JsonProperty(Order = -20)]
    [JsonPropertyOrder(-20)]
    public virtual long? TenantId { get; set; }
}

数据权限接口

需要数据权限时继承IData

可在角色管理中设置数据权限:本部门、本部门和下级部门、指定部门、本人数据

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IData
{
    /// <summary>
    /// 拥有者Id
    /// </summary>
    [Description("拥有者Id")]
    [Column(Position = -41)]
    public virtual long? OwnerId { get; set; }

    /// <summary>
    /// 拥有者部门Id
    /// </summary>
    [Description("拥有者部门Id")]
    [Column(Position = -40)]
    public virtual long? OwnerOrgId { get; set; }
}

会员接口

需要隔离不同会员数据时继承IMember

cs
/// <summary>
/// 模块
/// </summary>
[Table(Name = "app_module")]
public class ModuleEntity : IMember
{
    /// <summary>
    /// 会员Id
    /// </summary>
    [Description("会员Id")]
    [Column(Position = -23, CanUpdate = false)]
    public virtual long? MemberId { get; set; }
}