Skip to content
.NET 开发者指北.NET 开发者指北
CMS
.NET指北
FreeKit
Docker
关于
博客
github icon
    • 文件上传系统
      • 行为日志
        • 基于 RBAC 实现权限设计
          • 方法级别的权限控制(API级别)
            • LinCms.Scaffolding 代码生成器
              • Autofac 依赖注入小知识
                • ASP.NETCore 下 FreeSql 的仓储事务

                LinCms.Scaffolding 代码生成器

                calendar icon2020年7月26日timer icon大约 2 分钟word icon约 465 字

                # LinCms.Scaffolding 代码生成器

                https://github.com/luoyunchong/lin-cms-dotnetcore/tree/devopen in new window

                打开项目 LinCms.Scaffolding.sln。

                看到 appsettings.json 配置如下

                {
                  "SettingOptions": {
                    "ProjectName": "LinCms",
                    "BaseDirectory": "D:/code/github/lin-cms-dotnetcore/src/LinCms.Core/"
                    "EntityFilePath": "Entities/Base/Doc.cs",
                    "Areas": "Base",
                    "TemplatePath": "./Templates",
                    "OutputDirectory": "D:/code/github/lin-cms-dotnetcore/code-scaffolding"
                  }
                }
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10

                完成一个简单的表的 CRUD,只需要,创建一个实体类,修改一下上面的配置项,即可生成代码。

                • BaseDirectory:BaseDirectory 请配置成 LinCms.Core 的项目路径。后缀要加/

                由于项目使用Microsoft.CodeAnalysis.CSharp解析出类的属性,需要知道项目的在哪个位置。

                另外,本项目,会根据 LinCms.Core.xml 中的内容解析出类和属性的注释。

                • EntityFilePath 实体类所在文件位置
                • Areas 区域模块名,eg:(Base)
                • TemplatePath 相对路径,当前项目下的 Templates 目录,不需要修改
                • OutputDirectory 生成的代码路径。可以是相对路径,也可以是绝对路径

                我们在 LinCms.Core 中的 Entities 中 Base 目录,新建一个类 Doc.cs,并写上注释信息,以便生成列表和表单。

                using FreeSql.DataAnnotations;
                using System;
                using System.Collections.Generic;
                using System.Text;
                
                namespace LinCms.Entities.Base
                {
                    /// <summary>
                    /// 文档
                    /// </summary>
                    public class Doc : FullAuditEntity
                    {
                        /// <summary>
                        /// 文档名
                        /// </summary>
                        [Column(StringLength = 50)]
                        public string Name { get; set; }
                
                        /// <summary>
                        /// 显示名
                        /// </summary>
                        [Column(StringLength = 50)]
                        public string DisplayName { get; set; }
                
                    }
                }
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                17
                18
                19
                20
                21
                22
                23
                24
                25
                26

                我们可以根据需要,修改上面的配置信息。

                我们可以打开 Lincms 的项目。删除所有的 Docs 相关的代码。

                然后运行此代码生成器。即可生成所有 CRUD 代码。然后。代码会输出到此目录 "D:/code/github/lin-cms-dotnetcore/code-scaffolding",

                然后。我们将前五个代码,依次复制到项目中,因为可能覆盖现有的代码,所以不推荐将此代码的输出目录写成D:/code/github/lin-cms-dotnetcore/src。

                然后将最后一个 lin-cms-vue。按模块复制到自己项目中即可。

                edit icon在 GitHub 上编辑此页open in new window
                上次编辑于: 2022/7/30 11:18:46
                贡献者: luoyunchong,igeekfan
                上一页
                方法级别的权限控制(API级别)
                下一页
                Autofac 依赖注入小知识
                MIT Licensed | Copyright © 2021-present luoyunchong
                苏ICP备16046457号-1

                该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。

                详情