# NutGender **Repository Path**: geekcheng_admin/nut-gender ## Basic Information - **Project Name**: NutGender - **Description**: NutGender是一个快速代码生成工具,使用简单的配置即可生成多数据库、种子数据、以及基础的增删改查和复杂查询等,可以快速构建API应用。具体使用Gitee搜索“NutGender” - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-04-27 - **Last Updated**: 2023-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nut-Gender 快速开发工具 #### 介绍 NutGender是一个快速代码生成工具,使用简单的配置即可生成多数据库、种子数据、以及基础的增删改查和复杂查询等,可以快速构建API应用。 本工具使用控制台接入,全部过程只需要对JSON配置文件进行简单配置以及几行导入代码,即可生成数据库、种子数据、相关映射类,以及MVC的相关代码。使得初始数据环境可以快速的搭建,并且更方便地在不同机器和环境中移动。 #### 安装引用 1. Nuget CLI: ```shell# dotnet add package NutGender --version 1.0.1.2 ```` 2. PackageReference ````xml ```` #### 接入步骤 1. 使用控制台程序引导 ```sharp= public static void Main(string[] args) { GenderLoadler.Instance.InitConfiguration(); //初始化配置文件 GenderLoadler.Instance.CreateTableAndSeed();//创建表及相应种子数据 GenderLoadler.Instance.CreateCSharpCodeAll(); //创建C#代码 Console.WriteLine("按任意键继续..."); Console.ReadLine(); } ``` 3. 配置文件 默认的配置文件为nutgender.json,您也可以定义多个配置文件,进行批量和条件化地导出,具体参数如下 ```json= { //数据库类型 "SQLType": "mysql", //连接字符串(不带数据库名) "ConnectionString": "[你的数据库连接]", //数据库名 "Schema": "nuttest", //生成代码配置 "Code": { //代码命名空间 "Namespace": "NutCode", //模型映射路径 "ModelPath": "D:\\Code\\Models", //DAL层代码导出路径 "StoragePath": "D:\\Code\\DAL", //服务层代码导出路径 "ServicePath": "D:\\Code\\BAL", //MVC层代码导出路径 "ControllerPath": "D:\\Code\\API", //自定义查询生成类(VO)路径 "ViewPath": "D:\\Code\\Views" }, //所有表 "Tables": [ //用户表 { //表中文名 "CnName": "用户表", //表英文名 "EnName": "TUser", //字段 "Fields": [ { "CnName": "主键", "EnName": "Id", "isPrimary": true }, { "CnName": "部门Id", "EnName": "DeptId", "DbType": "bigint", "isPrimary": false, "isNotNull": true }, { "CnName": "名称", "EnName": "Name", "isPrimary": false, "isNotNull": true }, { "CnName": "年龄", "EnName": "Age", "DbType": "int", "isPrimary": false }, { "CnName": "创建时间", "EnName": "CreateDate", "DbType": "DateTime", "isPrimary": false } ], //自定义查询接口 "CustomQuery": [ { "EnName": "SelectDict", "CnName": "查询字典", "ParamType": [ [ "@Did", "bigint", "外键部门Id" ] //参数若存在于当前表中,则Gender自动检索类型,不需要定义类型;若不存在于当前表中则需要自定义参数类型,否则代码导出为object ], "ResultType": "List", //问号代表自动生成的返回类,如果该字段不写则默认返回List //"Sql": "SELECT u.Name,u.Age,d.Name as DeptName FROM TUser u LEFT JOIN TDept d ON d.Id = u.DeptId Where u.Age = @Age AND d.Id = @DeptId;", "Sql": "SELECT u.Name,u.Age,d.Name as DeptName FROM TUser u LEFT JOIN TDept d ON d.Id = u.DeptId Where u.Age = @Age AND d.Id = @Did;" } ], //种子数据 "Seeds": { "Keys": "Id,Age,Name,DeptId,CreateDate", "Vals": [ "guid(),31,'alpha',1,now()", "guid(),32,ranstr(),1,now()", "guid(),23,ranstr(),1,now()", "guid(),26,ranstr(),1,now()", "guid(),34,'delta',1,now()" ] } }, //部门表 { //表中文名 "CnName": "部门表", //表英文名 "EnName": "TDept", //字段 "Fields": [ { "CnName": "主键", "EnName": "Id", "DbType": "bigint", "isPrimary": true }, { "CnName": "部门名", "EnName": "Name", "isPrimary": false, "isNotNull": true }, { "CnName": "创建时间", "EnName": "CreateDate", "DbType": "DateTime", "isPrimary": false } ], //自定义查询接口 "CustomQuery": [ { "EnName": "SelectDict", "CnName": "查询字典", "Sql": "SELECT Name as Value,Id as Label From TDept;" } ], //种子数据 "Seeds": { "Keys": "Name,CreateDate", "Vals": [ "'信息部',now()", "'业务部',now()" ] } } ] } ``` #### 当前版本(1.0.1.2)支持 1. 当前版本仅支持MYSQL数据库和C#语言的导出 2. 代码(增删改查)模板是固定的,可导出文件后自行修改,后续会引入自定义模板功能 3. 初始版本,可能有不同程度的BUG,欢迎指正