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 @@
+