NutGender快速代碼生成工具
NutGender是一個快速代碼生成工具,使用簡單的配置即可生成多數(shù)據(jù)庫、種子數(shù)據(jù)、以及基礎(chǔ)的增刪改查和復(fù)雜查詢等,可以快速構(gòu)建API應(yīng)用。
本工具使用控制臺接入,全部過程只需要對JSON配置文件進行簡單配置以及幾行導(dǎo)入代碼,即可生成數(shù)據(jù)庫、種子數(shù)據(jù)、相關(guān)映射類,以及MVC的相關(guān)代碼。使得初始數(shù)據(jù)環(huán)境可以快速的搭建,并且更方便地在不同機器和環(huán)境中移動。
安裝引用
- Nuget CLI:
dotnet add package NutGender --version 1.0.1.2
- PackageReference
<PackageReference Include="NutGender" Version="1.0.1.2" />
接入步驟
- 使用控制臺程序引導(dǎo)
public static void Main(string[] args) { GenderLoadler.Instance.InitConfiguration(); //初始化配置文件 GenderLoadler.Instance.CreateTableAndSeed();//創(chuàng)建表及相應(yīng)種子數(shù)據(jù) GenderLoadler.Instance.CreateCSharpCodeAll(); //創(chuàng)建C#代碼 Console.WriteLine("按任意鍵繼續(xù)..."); Console.ReadLine(); }
- 配置文件 默認的配置文件為nutgender.json,您也可以定義多個配置文件,進行批量和條件化地導(dǎo)出,具體參數(shù)如下
{ //數(shù)據(jù)庫類型 "SQLType": "mysql", //連接字符串(不帶數(shù)據(jù)庫名) "ConnectionString": "[你的數(shù)據(jù)庫連接]", //數(shù)據(jù)庫名 "Schema": "nuttest", //生成代碼配置 "Code": { //代碼命名空間 "Namespace": "NutCode", //模型映射路徑 "ModelPath": "D:\\Code\\Models", //DAL層代碼導(dǎo)出路徑 "StoragePath": "D:\\Code\\DAL", //服務(wù)層代碼導(dǎo)出路徑 "ServicePath": "D:\\Code\\BAL", //MVC層代碼導(dǎo)出路徑 "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": "創(chuàng)建時間", "EnName": "CreateDate", "DbType": "DateTime", "isPrimary": false } ], //自定義查詢接口 "CustomQuery": [ { "EnName": "SelectDict", "CnName": "查詢字典", "ParamType": [ [ "@Did", "bigint", "外鍵部門Id" ] //參數(shù)若存在于當(dāng)前表中,則Gender自動檢索類型,不需要定義類型;若不存在于當(dāng)前表中則需要自定義參數(shù)類型,否則代碼導(dǎo)出為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;" } ], //種子數(shù)據(jù) "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": "創(chuàng)建時間", "EnName": "CreateDate", "DbType": "DateTime", "isPrimary": false } ], //自定義查詢接口 "CustomQuery": [ { "EnName": "SelectDict", "CnName": "查詢字典", "Sql": "SELECT Name as Value,Id as Label From TDept;" } ], //種子數(shù)據(jù) "Seeds": { "Keys": "Name,CreateDate", "Vals": [ "'信息部',now()", "'業(yè)務(wù)部',now()" ] } } ] }
評論
圖片
表情
