是否有一个类可以自动将.net框架类型转换为PostgreSQL类型?
本文关键字:类型转换 框架 PostgreSQL 类型 net 有一个 是否 | 更新日期: 2023-09-27 18:02:45
为了编写sql查询,我需要能够采用。net类型并获得PostgreSQL类型的字符串。例如,我需要从
typeof(int) --> "int"
这很棘手,因为typeof(int)是System.Int32。我发现了一些表,如这一个,但我想知道是否有一个类,自动做到这一点,而不是自己编写所有的映射。
也许可以:
public static class DotNetTypeToPostgreSqlType
{
public static string GetPostgreType(object o)
{
if (o is Int64)
{
return "int8";
}
if (o is Boolean)
{
return "bool";
}
if (o is Byte[])
{
return "bytea";
}
if (o is DateTime)
{
return "date";
}
if (o is Double)
{
return "float8";
}
if (o is Int32)
{
return "int4";
}
if (o is Decimal)
{
return "money";
}
if (o is Decimal)
{
return "numeric";
}
if (o is Single)
{
return "float4";
}
if (o is Int16)
{
return "int2";
}
if (o is String)
{
return "text";
}
if (o is DateTime)
{
return "time";
}
if (o is DateTime)
{
return "timetz";
}
if (o is DateTime)
{
return "timestamp";
}
if (o is DateTime)
{
return "timestamptz";
}
if (o is TimeSpan)
{
return "interval";
}
if (o is String)
{
return "varchar";
}
if (o is IPAddress)
{
return "inet";
}
if (o is Boolean)
{
return "bit";
}
if (o is Guid)
{
return "uuid";
}
if (o is Array)
{
return "array";
}
throw new NotImplementedException("Unknown postgresql type");
}
}