只做绿色食品的网站,网站开发属于软件开发行业吗,鹰潭网站制作,如何做网站关键词优化通过替换字符串的方式生成代码#xff0c;其他代码也可以通这种方式生成 直接上代码
设置模板 将这几个模板文件设置为#xff1a;嵌入资源 模板内容#xff1a;
using SqlSugar;namespace {Namespace}.Domain.Admin.{ModelName};
/// summary
/// {TableDisplay…通过替换字符串的方式生成代码其他代码也可以通这种方式生成 直接上代码
设置模板 将这几个模板文件设置为嵌入资源 模板内容
using SqlSugar;namespace {Namespace}.Domain.Admin.{ModelName};
/// summary
/// {TableDisplayName}
////summary
[SugarTable({TableName})]
public class {ModelName}Entity
{{AttributeList}
}生成代码 /// summary/// 预览代码/// /summary/// param namecurrentTableName表名/param/// returns/returns[HttpGet]public ProviewCodeOutput PreviewCode(string currentTableName){//我是在其他类里面生成的代码所以通过dll加载嵌入的资源// 通过 DLL 加载资源 var assemblyPath Path.Combine(AppContext.BaseDirectory, XR.Host.dll);var assembly AssemblyLoadContext.Default.LoadFromAssemblyPath(assemblyPath);var resourceName assembly.GetManifestResourceNames().FirstOrDefault(a a.Contains(ModelTemplate.txt));var file assembly.GetManifestResourceStream(resourceName);//实体模板var modelTemplate new StreamReader(file).ReadToEnd();//仓储接口模板var IrepostoryTemplate new StreamReader(assembly.GetManifestResourceStream(assembly.GetManifestResourceNames().FirstOrDefault(a a.Contains(IRepositoryTemplate.txt)))).ReadToEnd();//仓储接口模板var repostoryTemplate new StreamReader(assembly.GetManifestResourceStream(assembly.GetManifestResourceNames().Where(a a.Contains(RepositoryClassTemplate.txt)).First())).ReadToEnd();var orm LazyGetRequiredServiceIUserRepository().Orm;var table orm.DbMaintenance.GetTableInfoList(true);//命名空间var Namespace Assembly.GetExecutingAssembly().GetName().Name;var parentPath new DirectoryInfo(Environment.CurrentDirectory).Parent $\\{Namespace};var result new ProviewCodeOutput();foreach (var tableInfo in table){if (tableInfo.Name currentTableName){var modelName tableInfo.Name.Replace(SYS_, ).Replace(TB_, ).Replace(TN_, );modelName ConvertToCamelCase(modelName);var tableColumn orm.DbMaintenance.GetColumnInfosByTableName(tableInfo.Name);var attributes BuildColumn(tableColumn);//通过替换字符串的方式生成代码result.ModalCode modelTemplate.Replace({Namespace}, Namespace).Replace({ModelName}, modelName).Replace({TableName}, tableInfo.Name).Replace({TableDisplayName}, tableInfo.Description).Replace({AttributeList}, attributes);}}return result;}private string BuildColumn(ListDbColumnInfo columnInfos){var attributes new StringBuilder();foreach (var columnInfo in columnInfos){attributes.Append(\r\n /// summary);attributes.Append($\r\n /// {columnInfo.ColumnDescription});attributes.Append(\r\n /// /summary);attributes.Append($\r\n [SugarColumn({(columnInfo.IsPrimarykey ? IsPrimaryKey true, : )} ColumnName \{columnInfo.DbColumnName}\, {(columnInfo.IsNullable ? IsNullable true, : )} ColumnDescription \{columnInfo.ColumnDescription}\)]);attributes.Append($\r\n public {SetDataType(columnInfo.DataType)}{(columnInfo.IsNullable ? ? : )} {ConvertToCamelCase(columnInfo.DbColumnName)} {{ get; set; }});}return attributes.ToString();}private string SetDataType(string dataType){dataType dataType.ToLower();var result dataType;switch (dataType){case int32:result typeof(int).Name;break;case int64:result typeof(int).Name;break;case datetime:result typeof(DateTime).Name;break;}return result;}/// summary/// 将驼峰转换为字符串/// /summary/// param nameinput/param/// returns/returnsprivate string ConvertToCamelCase(string input){if (string.IsNullOrEmpty(input))return input;var text input.Split(_);var camelTxt ;TextInfo textInfo CultureInfo.CurrentCulture.TextInfo;foreach (var c in text){camelTxt textInfo.ToTitleCase(c.ToLower());}return camelTxt;}