/// <summary> /// Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type /// described by the NpgsqlNativeTypeInfo supplied. /// </summary> public static NpgsqlNativeTypeInfo ArrayOf(NpgsqlNativeTypeInfo elementType) { if (elementType._IsArray) //we've an array of arrays. It's the inner most elements whose type we care about, so the type we have is fine. { return(elementType); } NpgsqlNativeTypeInfo copy = null; ArrayNativeToBackendTypeConverter converter = new ArrayNativeToBackendTypeConverter(elementType); if (elementType._ConvertNativeToBackendBinary != null) { copy = new NpgsqlNativeTypeInfo("_" + elementType.Name, NpgsqlDbType.Array | elementType.NpgsqlDbType, elementType.DbType, false, converter.ArrayToArrayText, converter.ArrayToArrayBinary); } else { copy = new NpgsqlNativeTypeInfo("_" + elementType.Name, NpgsqlDbType.Array | elementType.NpgsqlDbType, elementType.DbType, false, converter.ArrayToArrayText); } copy._IsArray = true; return(copy); }
/// <summary> /// Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type /// described by the NpgsqlNativeTypeInfo supplied. /// </summary> public static NpgsqlNativeTypeInfo ArrayOf(NpgsqlNativeTypeInfo elementType) { if (elementType._IsArray) //we've an array of arrays. It's the inner most elements whose type we care about, so the type we have is fine. { return elementType; } NpgsqlNativeTypeInfo copy = null; ArrayNativeToBackendTypeConverter converter = new ArrayNativeToBackendTypeConverter(elementType); if (elementType._ConvertNativeToBackendBinary != null) { copy = new NpgsqlNativeTypeInfo("_" + elementType.Name, NpgsqlDbType.Array | elementType.NpgsqlDbType, elementType.DbType, false, converter.ArrayToArrayText, converter.ArrayToArrayBinary); } else { copy = new NpgsqlNativeTypeInfo("_" + elementType.Name, NpgsqlDbType.Array | elementType.NpgsqlDbType, elementType.DbType, false, converter.ArrayToArrayText); } copy._IsArray = true; return copy; }