Просмотр исходного кода

!625 生成代码支持可空类型
Merge pull request !625 from 清子/next_King_pr

zuohuaijun 3 лет назад
Родитель
Сommit
c17bb47349

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs

@@ -129,7 +129,7 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
     /// <returns></returns>
     private string GetDefaultQueryType(SysCodeGenConfig codeGenConfig)
     {
-        switch (codeGenConfig.NetType)
+        switch (codeGenConfig.NetType?.TrimEnd('?'))
         {
             case "string":
                 return "like";

+ 3 - 2
Admin.NET/Admin.NET.Core/Util/CodeGenUtil.cs

@@ -44,12 +44,13 @@ public static class CodeGenUtil
     public static string ConvertDataType(DbColumnInfo dbColumnInfo)
     {
         var dbType = App.GetOptions<DbConnectionOptions>().ConnectionConfigs[0].DbType;
-        return dbType switch
+        var dataType =  dbType switch
         {
             DbType.Oracle => ConvertDataType_OracleSQL(string.IsNullOrEmpty(dbColumnInfo.OracleDataType) ? dbColumnInfo.DataType : dbColumnInfo.OracleDataType, dbColumnInfo.Length, dbColumnInfo.Scale),
             DbType.PostgreSQL => ConvertDataType_PostgreSQL(dbColumnInfo.DataType),
             _ => ConvertDataType_Default(dbColumnInfo.DataType),
         };
+        return dataType + (dbColumnInfo.IsNullable ? "?" : "");
     }
 
     public static string ConvertDataType_OracleSQL(string dataType, int? length, int? scale)
@@ -252,7 +253,7 @@ public static class CodeGenUtil
     public static string DataTypeToEff(string dataType)
     {
         if (string.IsNullOrEmpty(dataType)) return "";
-        return dataType switch
+        return dataType?.TrimEnd('?') switch
         {
             "string" => "Input",
             "int" => "InputNumber",

+ 1 - 1
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/Input.cs.vm

@@ -33,7 +33,7 @@ if (@column.QueryWhether == "Y"){
         @:public @column.NetType @column.ColumnName { get; set; }
         @:
 
-if(@column.NetType == "DateTime" && @column.QueryType == "~"){
+if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
         @:/// <summary>
         @: /// @(@column.ColumnComment)范围
         @: /// </summary>

+ 4 - 4
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm

@@ -25,15 +25,15 @@ public class @(@Model.ClassName)Service : IDynamicApiController, ITransient
         var query= _rep.AsQueryable()
 @foreach (var column in Model.TableField){
 if (@column.QueryWhether == "Y"){
-    if (@column.NetType == "string"){
+    if (@column.NetType?.TrimEnd('?') == "string"){
         if(@column.QueryType == "like"){
                     @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.ColumnName), u => u.@(@column.ColumnName).Contains(input.@(@column.ColumnName).Trim()))
         }else{
                     @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.ColumnName), u => u.@(@column.ColumnName) @column.QueryType input.@(@column.ColumnName))
         }
-    }else if(@column.NetType == "int" || @column.NetType == "long"){
+    }else if(@column.NetType?.TrimEnd('?') == "int" || @column.NetType?.TrimEnd('?') == "long"){
                     @:.WhereIF(input.@column.ColumnName>0, u => u.@(@column.ColumnName) @column.QueryType input.@(@column.ColumnName))
-    }else if(@column.NetType == "DateTime" && @column.QueryType == "~"){
+    }else if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
     }
 } 
 }          
@@ -60,7 +60,7 @@ if (@column.QueryWhether == "Y"){
 ;
 @foreach (var column in Model.TableField){
 if (@column.QueryWhether == "Y"){
-    if(@column.NetType == "DateTime" && @column.QueryType == "~"){
+    if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
         @:if(input.@(@column.ColumnName)Range != null && input.@(@column.ColumnName)Range.Count >0)
         @:{
                 @:DateTime? start= input.@(@column.ColumnName)Range[0]; 

+ 1 - 1
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/data.data.ts.vm

@@ -81,7 +81,7 @@ if(@column.EffectType == "fk"){
       @:api: get@(@column.FkEntityName)Tree,
     @:},
 }
-else if(@column.NetType == "DateTime" && @column.QueryType == "~"){
+else if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
     @:component: 'RangePicker',
     @:componentProps: {
     @:  valueFormat:"YYYY-MM-DD"