From 88ab4255f8d3ed34d52faa325320376ddc2869b8 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 30 Nov 2023 04:37:34 +0800 Subject: [PATCH] Synchronization code --- .../DynamicBuilder/DynamicBuilderHelper.cs | 11 +++++++++- .../DynamicBuilder/DynamicOneselfType.cs | 21 +++++++++++++++++++ Src/Asp.Net/SqlSugar/SqlSugar.csproj | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicOneselfType.cs diff --git a/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicBuilderHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicBuilderHelper.cs index a97e30299..5b358ec0c 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicBuilderHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicBuilderHelper.cs @@ -24,7 +24,16 @@ namespace SqlSugar foreach (PropertyMetadata property in properties) { - EmitTool.CreateProperty(typeBuilder, property.Name, property.Type, property.CustomAttributes); + var type = property.Type; + if (type == typeof(DynamicOneselfType)) + { + type = typeBuilder; + } + else if (type == typeof(DynamicOneselfTypeList)) + { + type = typeof(List<>).MakeGenericType(typeBuilder); + } + EmitTool.CreateProperty(typeBuilder, property.Name, type, property.CustomAttributes); } Type dynamicType = typeBuilder.CreateTypeInfo().AsType(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicOneselfType.cs b/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicOneselfType.cs new file mode 100644 index 000000000..549c859d7 --- /dev/null +++ b/Src/Asp.Net/SqlSugar/Abstract/DynamicBuilder/DynamicOneselfType.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SqlSugar +{ + /// + /// Dynamically construct Type, the property is self, with this type + /// + public class DynamicOneselfType + { + + } + /// + /// Dynamically construct Type, the property is List self , with this type + /// + public class DynamicOneselfTypeList + { + + } +} diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.csproj b/Src/Asp.Net/SqlSugar/SqlSugar.csproj index b20ba3441..ce772b0d6 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.Net/SqlSugar/SqlSugar.csproj @@ -91,6 +91,7 @@ +