# 项目结构 ### WoodAdmin 解决方案 - 01 Framework 基础设施层 - Cache 数据缓存接口 - Wood.Cache.Interface 缓存抽象接口 - Wood.MemoryCache 内存缓存 - Wood.RedisCache Redis缓存 - Wood.EventBus 事件总线 - Wood.Util 工具类 - 02 DataAccess数据库核心层 - Wood.Data.Repository 数据库 - 03 Entity实体层 - Wood.Entity 实体 - 04 Business 业务逻辑层 - Wood.AutoJob 定时任务 - Wood.Service 核心服务 - Wood.Test.Service 示例 - 05 WebHost - Wood.Admin.WebApi WebApi # 快速开始 1. 在【03 Entity实体层】添加需要映射的实体 ```csharp /// /// 测试信息 /// [SugarTable("SysTest", "测试信息")] public class TestEntity : EntityBaseExtra { /// /// 名称 /// [SugarColumn(ColumnDescription = "名称",Length =64)] [Required(ErrorMessage = "必须填写名称!")] public string Name { get; set; } = ""; /// /// 编码 /// [SugarColumn(ColumnDescription = "编码", Length = 32)] [Required] [UniqueValue(ErrorMessage ="编码不能重复!")] public string FormCode { get; set; } = ""; /// /// 排序 /// [SugarColumn(ColumnDescription = "排序")] public int Sort { get; set; } = 0; } ``` 2. 在【04 Business 业务逻辑层】新建项目(名称以Service为结尾),添加对【Wood.Service】引用。 3. 在【04 Business 业务逻辑层】新建Service,继承【ApiService】。 ```csharp /// /// 测试服务 /// public class TestService : ApiService { /// /// 分页获取用户数据 /// /// /// public TDataPaged Paged(Pagination param) { return new TDataPaged(); } /// /// 是否存在 /// /// public bool GetExist() { return false; } /// /// 获取树形结构 /// /// 树形结构 public List TreeList() { return new List(); } /// /// 获取明细 /// /// public TestEntity GetDetail(BaseIdParam param) { return new TestEntity(); } } ``` 4. 在WebApi项目引用新建项目 5. 运行即可看到api列表,Get开头自动注册get请求,否则为post请求,特殊需要可以进行[HttpGet][HttpPost]标记。 ### 项目约定: - 实体 放在【Wood.Entity】 - Service类放在以Service为后缀的项目中 - AutoJob放在【Wood.AutoJob】 - 工具放在【Wood.Util】 - 自定义事件放在【Wood.EventBus】