解决IoTDB驱动单测点数据模型元组可空类型元素映射失败的问题。
This commit is contained in:
parent
6d95430b63
commit
d87f7a2c41
@ -577,19 +577,43 @@ namespace JiShe.CollectBus.IncrementalGenerator
|
|||||||
var elementDeclaredName = element.Type.Name;//元组元素类型名称
|
var elementDeclaredName = element.Type.Name;//元组元素类型名称
|
||||||
|
|
||||||
initializerLines.Add(
|
initializerLines.Add(
|
||||||
$"new EntityMemberInfo(" +
|
$"new EntityMemberInfo(" +
|
||||||
$"\"{prop.Name}.{elementName}\", " +
|
$"\"{prop.Name}.{elementName}\", " +
|
||||||
$"typeof({elementType}), " +
|
$"typeof({elementType}), " +
|
||||||
$"typeof({elementType}).Name, " +//$"\"{elementDeclaredName}\", " +
|
$"GetValueTupleElementName(typeof({elementType})), " +//$"\"{elementDeclaredName}\", " +
|
||||||
$"(e) => Get{prop.Name}_{elementName}(({entityType})e), " +
|
$"(e) => Get{prop.Name}_{elementName}(({entityType})e), " +
|
||||||
$"(e, v) => Set{prop.Name}_{elementName}(({entityType})e, ({elementType})v))");
|
$"(e, v) => Set{prop.Name}_{elementName}(({entityType})e, ({elementType})v))");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
code.AppendLine(string.Join(",\n", initializerLines));
|
code.AppendLine(string.Join(",\n", initializerLines));
|
||||||
code.AppendLine(" };");
|
code.AppendLine(" };");
|
||||||
}
|
|
||||||
|
code.AppendLine(GetValueTupleElementName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetValueTupleElementName()
|
||||||
|
{
|
||||||
|
return """
|
||||||
|
public static string GetValueTupleElementName(Type declaredType)
|
||||||
|
{
|
||||||
|
string typeName;
|
||||||
|
// 处理可空类型
|
||||||
|
if (declaredType.IsGenericType && declaredType.GetGenericTypeDefinition() == typeof(Nullable<>))
|
||||||
|
{
|
||||||
|
Type underlyingType = Nullable.GetUnderlyingType(declaredType);
|
||||||
|
typeName = underlyingType.Name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
typeName = declaredType.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return typeName;
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static string GenerateAttributeInitializer(AttributeData attribute)
|
private static string GenerateAttributeInitializer(AttributeData attribute)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user