static string GetPgName <T>(INpgsqlNameTranslator nameTranslator) { var attr = typeof(T).GetTypeInfo().GetCustomAttribute <PgNameAttribute>(); return(attr == null ? nameTranslator.TranslateTypeName(typeof(T).Name) : attr.PgName); }
// TODO: why does ReSharper think `GetCustomAttribute<T>` is non-nullable? // ReSharper disable once ConstantConditionalAccessQualifier ConstantNullCoalescingCondition static string GetPgName <T>(INpgsqlNameTranslator nameTranslator) => typeof(T).GetCustomAttribute <PgNameAttribute>()?.PgName ?? nameTranslator.TranslateTypeName(typeof(T).Name);
private protected static string GetPgName(Type clrType, INpgsqlNameTranslator nameTranslator) => clrType.GetCustomAttribute <PgNameAttribute>()?.PgName ?? nameTranslator.TranslateTypeName(clrType.Name);
// See: https://github.com/npgsql/npgsql/blob/dev/src/Npgsql/TypeMapping/TypeMapperBase.cs#L132-L138 private static string GetTypePgName <TEnum>(INpgsqlNameTranslator nameTranslator) where TEnum : struct, Enum => typeof(TEnum).GetCustomAttribute <PgNameAttribute>()?.PgName ?? nameTranslator.TranslateTypeName(typeof(TEnum).Name);