This commit is contained in:
sunkaixuan
2024-05-23 23:15:02 +08:00
parent bd3ef5de89
commit 263184ab1f

View File

@@ -68,7 +68,7 @@ namespace SqlSugar
}
#region BuilderTypes
public (Type a, Type b) BuilderTypes(DynamicProperyBuilder dynamicBuilderB)
public Tuple<Type, Type> BuilderTypes(DynamicProperyBuilder dynamicBuilderB)
{
if (IsCache)
{
@@ -76,25 +76,24 @@ namespace SqlSugar
var key2 = dynamicBuilderB.baseBuilder.entityName + string.Join("_", dynamicBuilderB.baseBuilder.propertyAttr.Select(it => it.Name + it.Type.Name));
return new ReflectionInoCacheService().GetOrCreate(key1 + key2, () =>
{
(Type, Type) result = GetBuilderTypes(dynamicBuilderB);
Tuple<Type, Type> result = GetBuilderTypes(dynamicBuilderB);
return result;
});
}
else
{
(Type, Type) result = GetBuilderTypes(dynamicBuilderB);
Tuple<Type, Type> result = GetBuilderTypes(dynamicBuilderB);
return result;
}
}
private (Type, Type) GetBuilderTypes(DynamicProperyBuilder dynamicBuilderB)
private Tuple<Type,Type> GetBuilderTypes(DynamicProperyBuilder dynamicBuilderB)
{
DynamicProperyBuilder dynamicBuilderA = this;
TypeBuilder typeBuilderA = EmitTool.CreateTypeBuilder(dynamicBuilderA.baseBuilder.entityName, TypeAttributes.Public, dynamicBuilderA.baseBuilder.baseType, dynamicBuilderA.baseBuilder.interfaces);
TypeBuilder typeBuilderB = EmitTool.CreateTypeBuilder(dynamicBuilderB.baseBuilder.entityName, TypeAttributes.Public, dynamicBuilderB.baseBuilder.baseType, dynamicBuilderB.baseBuilder.interfaces);
DynamicBuilderHelper.CreateDynamicClass(typeBuilderA, typeBuilderB, dynamicBuilderA.baseBuilder.propertyAttr, dynamicBuilderA.baseBuilder.entityAttr);
DynamicBuilderHelper.CreateDynamicClass(typeBuilderB, typeBuilderA, dynamicBuilderB.baseBuilder.propertyAttr, dynamicBuilderB.baseBuilder.entityAttr);
var result = (typeBuilderA.CreateTypeInfo().AsType(), typeBuilderB.CreateTypeInfo().AsType());
return result;
return new Tuple<Type, Type>(typeBuilderA.CreateTypeInfo().AsType(), typeBuilderB.CreateTypeInfo().AsType());
}
#endregion