/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v10.0.0
src/Npgsql/Schema/NpgsqlDbColumn.cs
234 строки
7 KB
Nino Floris
Reduce use of Unsafe.As (#5554)
27 мар 2024, 22:25
Не верифицирован
27 мар 2024, 22:25
132a42d
Код
Авторство
О чём код?
using System; using System.Data.Common; using Npgsql.PostgresTypes; using NpgsqlTypes; namespace Npgsql.Schema; /// <summary> /// Provides schema information about a column. /// </summary> /// <remarks> /// Note that this can correspond to a field returned in a query which isn't an actual table column /// /// See https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable(v=vs.110).aspx /// for information on the meaning of the different fields. /// </remarks> public class NpgsqlDbColumn : DbColumn { /// <summary> /// Initializes a new instance of the <see cref="NpgsqlDbColumn" /> class. /// </summary> public NpgsqlDbColumn() { PostgresType = UnknownBackendType.Instance; // Not supported in PostgreSQL IsExpression = false; IsAliased = false; IsHidden = false; IsIdentity = false; } internal NpgsqlDbColumn Clone() => (NpgsqlDbColumn)MemberwiseClone(); #region Standard fields // ReSharper disable once InconsistentNaming /// <inheritdoc cref="DbColumn.AllowDBNull" /> public new bool? AllowDBNull { get => base.AllowDBNull; protected internal set => base.AllowDBNull = value; } /// <inheritdoc cref="DbColumn.BaseCatalogName" /> public new string BaseCatalogName { get => base.BaseCatalogName!; protected internal set => base.BaseCatalogName = value; } /// <inheritdoc cref="DbColumn.BaseColumnName" /> public new string? BaseColumnName { get => base.BaseColumnName; protected internal set => base.BaseColumnName = value; } /// <inheritdoc cref="DbColumn.BaseSchemaName" /> public new string? BaseSchemaName { get => base.BaseSchemaName; protected internal set => base.BaseSchemaName = value; } /// <inheritdoc cref="DbColumn.BaseServerName" /> public new string BaseServerName { get => base.BaseServerName!; protected internal set => base.BaseServerName = value; } /// <inheritdoc cref="DbColumn.BaseTableName" /> public new string? BaseTableName { get => base.BaseTableName; protected internal set => base.BaseTableName = value; } /// <inheritdoc cref="DbColumn.ColumnName" /> public new string ColumnName { get => base.ColumnName; protected internal set => base.ColumnName = value; } /// <inheritdoc cref="DbColumn.ColumnOrdinal" /> public new int? ColumnOrdinal { get => base.ColumnOrdinal; protected internal set => base.ColumnOrdinal = value; } /// <inheritdoc cref="DbColumn.ColumnSize" /> public new int? ColumnSize { get => base.ColumnSize; protected internal set => base.ColumnSize = value; } /// <inheritdoc cref="DbColumn.IsAliased" /> public new bool? IsAliased { get => base.IsAliased; protected internal set => base.IsAliased = value; } /// <inheritdoc cref="DbColumn.IsAutoIncrement" /> public new bool? IsAutoIncrement { get => base.IsAutoIncrement; protected internal set => base.IsAutoIncrement = value; } /// <inheritdoc cref="DbColumn.IsIdentity" /> public new bool? IsIdentity { get => base.IsIdentity; protected internal set => base.IsIdentity = value; } /// <inheritdoc cref="DbColumn.IsKey" /> public new bool? IsKey { get => base.IsKey; protected internal set => base.IsKey = value; } /// <inheritdoc cref="DbColumn.IsLong" /> public new bool? IsLong { get => base.IsLong; protected internal set => base.IsLong = value; } /// <inheritdoc cref="DbColumn.IsReadOnly" /> public new bool? IsReadOnly { get => base.IsReadOnly; protected internal set => base.IsReadOnly = value; } /// <inheritdoc cref="DbColumn.IsUnique" /> public new bool? IsUnique { get => base.IsUnique; protected internal set => base.IsUnique = value; } /// <inheritdoc cref="DbColumn.NumericPrecision" /> public new int? NumericPrecision { get => base.NumericPrecision; protected internal set => base.NumericPrecision = value; } /// <inheritdoc cref="DbColumn.NumericScale" /> public new int? NumericScale { get => base.NumericScale; protected internal set => base.NumericScale = value; } /// <inheritdoc cref="DbColumn.UdtAssemblyQualifiedName" /> public new string? UdtAssemblyQualifiedName { get => base.UdtAssemblyQualifiedName; protected internal set => base.UdtAssemblyQualifiedName = value; } /// <inheritdoc cref="DbColumn.DataType" /> public new Type? DataType { get => base.DataType; protected internal set => base.DataType = value; } /// <inheritdoc cref="DbColumn.DataTypeName" /> public new string DataTypeName { get => base.DataTypeName!; protected internal set => base.DataTypeName = value; } #endregion Standard fields #region Npgsql-specific fields /// <summary> /// The <see cref="PostgresType" /> describing the type of this column. /// </summary> public PostgresType PostgresType { get; internal set; } /// <summary> /// The OID of the type of this column in the PostgreSQL pg_type catalog table. /// </summary> public uint TypeOID { get; internal set; } /// <summary> /// The OID of the PostgreSQL table of this column. /// </summary> public uint TableOID { get; internal set; } /// <summary> /// The column's position within its table. Note that this is different from <see cref="ColumnOrdinal" />, /// which is the column's position within the resultset. /// </summary> public short? ColumnAttributeNumber { get; internal set; } /// <summary> /// The default SQL expression for this column. /// </summary> public string? DefaultValue { get; internal set; } /// <summary> /// The <see cref="NpgsqlDbType" /> value for this column's type. /// </summary> public NpgsqlDbType? NpgsqlDbType { get; internal set; } /// <inheritdoc /> public override object? this[string propertyName] => propertyName switch { nameof(PostgresType) => PostgresType, nameof(TypeOID) => TypeOID, nameof(TableOID) => TableOID, nameof(ColumnAttributeNumber) => ColumnAttributeNumber, nameof(DefaultValue) => DefaultValue, nameof(NpgsqlDbType) => NpgsqlDbType, _ => base[propertyName] }; #endregion Npgsql-specific fields }