将EdmType转换为JsonSchemaType

本文关键字:JsonSchemaType 转换 EdmType | 更新日期: 2023-09-27 18:14:19

我正在用T4为ASP生成c#代码。. NET Web API项目…我需要一种简单的方法将EdmType转换为JsonSchemaType。

谢谢!

将EdmType转换为JsonSchemaType

时间过得真快,我最后写了一个开关,直到我找到一个更好的解决方案…

public static class TypeMapper
{
    public static JsonSchemaType Convert(EdmType edmType)
    {
        switch (edmType.BuiltInTypeKind )
        {
            case BuiltInTypeKind.EnumType:
                return JsonSchemaType.String;
            case BuiltInTypeKind.ComplexType:
                return JsonSchemaType.Object;
            case BuiltInTypeKind.PrimitiveType:
                return GetPrimitiveType(edmType);
            default:
                return JsonSchemaType.Null;
        }
    }

    private static JsonSchemaType GetPrimitiveType(EdmType edmType)
    {
        switch (edmType.Name)
        {
            case "String":
            case "Guid":
            case "DateTime":
                return JsonSchemaType.String;
            case "Int32":
                return JsonSchemaType.Integer;
            case "Single":
            case "Double":
                return JsonSchemaType.Float;
            default:
                return JsonSchemaType.Null;
        }
    }
}