diff --git a/Atomx.Admin/Atomx.Admin.Client/Atomx.Admin.Client.csproj b/Atomx.Admin/Atomx.Admin.Client/Atomx.Admin.Client.csproj index 14c72e8..355573c 100644 --- a/Atomx.Admin/Atomx.Admin.Client/Atomx.Admin.Client.csproj +++ b/Atomx.Admin/Atomx.Admin.Client/Atomx.Admin.Client.csproj @@ -16,9 +16,8 @@ - + - diff --git a/Atomx.Admin/Atomx.Admin/Atomx.Admin.csproj b/Atomx.Admin/Atomx.Admin/Atomx.Admin.csproj index 61efd74..cd3393c 100644 --- a/Atomx.Admin/Atomx.Admin/Atomx.Admin.csproj +++ b/Atomx.Admin/Atomx.Admin/Atomx.Admin.csproj @@ -32,7 +32,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Atomx.Common/Entities/Post.cs b/Atomx.Common/Entities/Post.cs index db513cc..2de9109 100644 --- a/Atomx.Common/Entities/Post.cs +++ b/Atomx.Common/Entities/Post.cs @@ -1,12 +1,47 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; namespace Atomx.Common.Entities { + /// + /// 内容数据表 + /// + [Table("Posts")] public class Post { + [DatabaseGenerated(DatabaseGeneratedOption.None)] + [Key] + public long Id { get; set; } + + public int Type { get; set; } + + /// + /// 作者ID + /// + public long AuthorId { get; set; } + + /// + /// 标题 + /// + [Column(TypeName = "varchar(256)")] + public string Title { get; set; } = string.Empty; + + /// + /// 浏览数 + /// + public int ViewCount { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "timestamptz")] + + public DateTime CreateTime { get; set; } + + /// + /// 更新时间 + /// + [Column(TypeName = "timestamptz")] + public DateTime? UpdateTime { get; set; } } } diff --git a/Atomx.Common/Entities/PostTagRelation.cs b/Atomx.Common/Entities/PostTagRelation.cs new file mode 100644 index 0000000..07cf04e --- /dev/null +++ b/Atomx.Common/Entities/PostTagRelation.cs @@ -0,0 +1,35 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Atomx.Common.Entities +{ + /// + /// 内容标签关系表 + /// + [Table("PostTagRelations")] + public class PostTagRelation + { + [DatabaseGenerated(DatabaseGeneratedOption.None)] + [Key] + public long Id { get; set; } + + public long ContentType { get; set; } + + /// + /// 内容ID + /// + public long ContentId { get; set; } + + /// + /// 标签ID + /// + public long TagId { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "timestamptz")] + + public DateTime CreateTime { get; set; } + } +} diff --git a/Atomx.Common/Entities/Tag.cs b/Atomx.Common/Entities/Tag.cs new file mode 100644 index 0000000..75d6ebd --- /dev/null +++ b/Atomx.Common/Entities/Tag.cs @@ -0,0 +1,57 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Atomx.Common.Entities +{ + /// + /// 标签 + /// + [Table("Tags")] + public class Tag + { + [DatabaseGenerated(DatabaseGeneratedOption.None)] + [Key] + public long Id { get; set; } + + /// + /// 标签名称 + /// + [Column(TypeName = "varchar(64)")] + public string Name { get; set; } = string.Empty; + + /// + /// 颜色 + /// + [Column(TypeName = "varchar(12)")] + public string Color { get; set; } = string.Empty; + + /// + /// URL标识 + /// + [Column(TypeName = "varchar(128)")] + public string Slug { get; set; } = string.Empty; + + /// + /// 使用次数 + /// + public int Count { get; set; } + + /// + /// 是否启用 + /// + public int Enabled { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "timestamptz")] + + public DateTime CreateTime { get; set; } + + /// + /// 更新时间 + /// + [Column(TypeName = "timestamptz")] + public DateTime? UpdateTime { get; set; } + } +} diff --git a/Atomx.Data/DataContext.cs b/Atomx.Data/DataContext.cs index 4d75beb..bbbcc6d 100644 --- a/Atomx.Data/DataContext.cs +++ b/Atomx.Data/DataContext.cs @@ -167,6 +167,11 @@ namespace Atomx.Data /// public DbSet Menus { get; set; } + /// + /// 标签 + /// + public DbSet Tags { get; set; } + /// /// 上传文件 ///