Class SchemaProviderBase
- Namespace
- LinqToDB.SchemaProvider
- Assembly
- linq2db.dll
public abstract class SchemaProviderBase : ISchemaProvider- Inheritance
- 
      
      SchemaProviderBase
- Implements
- Derived
- Extension Methods
Fields
DataTypesSchema
protected DataTable DataTypesSchemaField Value
ExcludedCatalogs
protected HashSet<string?> ExcludedCatalogsField Value
ExcludedSchemas
protected HashSet<string?> ExcludedSchemasField Value
GenerateChar1AsString
protected bool GenerateChar1AsStringField Value
IncludedCatalogs
protected HashSet<string?> IncludedCatalogsField Value
IncludedSchemas
protected HashSet<string?> IncludedSchemasField Value
Properties
GetProcedureSchemaExecutesProcedure
If true, provider doesn't support schema-only procedure execution and will execute procedure for real.
protected virtual bool GetProcedureSchemaExecutesProcedure { get; }Property Value
Methods
BuildProcedureParameter(ParameterSchema)
protected virtual DataParameter BuildProcedureParameter(ParameterSchema p)Parameters
Returns
BuildSchemaFilter(GetSchemaOptions?, string, Action<StringBuilder, string>)
protected string? BuildSchemaFilter(GetSchemaOptions? options, string defaultSchema, Action<StringBuilder, string> stringLiteralBuilder)Parameters
- optionsGetSchemaOptions
- defaultSchemastring
- stringLiteralBuilderAction<StringBuilder, string>
Returns
BuildTableFunctionLoadTableSchemaCommand(ProcedureSchema, string)
Builds table function call command.
protected virtual string BuildTableFunctionLoadTableSchemaCommand(ProcedureSchema procedure, string commandText)Parameters
- procedureProcedureSchema
- commandTextstring
Returns
ForeignKeyColumnComparison(string)
protected virtual StringComparison ForeignKeyColumnComparison(string column)Parameters
- columnstring
Returns
GetColumns(DataConnection, GetSchemaOptions)
protected abstract List<ColumnInfo> GetColumns(DataConnection dataConnection, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- optionsGetSchemaOptions
Returns
GetDataSourceName(DataConnection)
protected virtual string GetDataSourceName(DataConnection dbConnection)Parameters
- dbConnectionDataConnection
Returns
GetDataType(string?, DataType?, GetSchemaOptions)
protected virtual DataTypeInfo? GetDataType(string? typeName, DataType? dataType, GetSchemaOptions options)Parameters
- typeNamestring
- dataTypeDataType?
- optionsGetSchemaOptions
Returns
GetDataType(string?, string?, int?, int?, int?)
protected abstract DataType GetDataType(string? dataType, string? columnType, int? length, int? precision, int? scale)Parameters
Returns
GetDataTypeByProviderDbType(int, GetSchemaOptions)
protected DataTypeInfo? GetDataTypeByProviderDbType(int typeId, GetSchemaOptions options)Parameters
- typeIdint
- optionsGetSchemaOptions
Returns
GetDataTypes(DataConnection)
Returns list of database data types.
protected virtual List<DataTypeInfo> GetDataTypes(DataConnection dataConnection)Parameters
- dataConnectionDataConnection
- Database connection instance. 
Returns
- List<DataTypeInfo>
- List of database data types. 
GetDatabaseName(DataConnection)
protected virtual string GetDatabaseName(DataConnection dbConnection)Parameters
- dbConnectionDataConnection
Returns
GetDbType(GetSchemaOptions, string?, DataTypeInfo?, int?, int?, int?, string?, string?, string?)
protected virtual string? GetDbType(GetSchemaOptions options, string? columnType, DataTypeInfo? dataType, int? length, int? precision, int? scale, string? udtCatalog, string? udtSchema, string? udtName)Parameters
- optionsGetSchemaOptions
- columnTypestring
- dataTypeDataTypeInfo
- lengthint?
- precisionint?
- scaleint?
- udtCatalogstring
- udtSchemastring
- udtNamestring
Returns
GetForeignKeys(DataConnection, IEnumerable<TableSchema>, GetSchemaOptions)
protected abstract IReadOnlyCollection<ForeignKeyInfo> GetForeignKeys(DataConnection dataConnection, IEnumerable<TableSchema> tables, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- tablesIEnumerable<TableSchema>
- optionsGetSchemaOptions
Returns
GetHashSet(string?[]?, IEqualityComparer<string?>)
protected static HashSet<string?> GetHashSet(string?[]? data, IEqualityComparer<string?> comparer)Parameters
- datastring[]
- comparerIEqualityComparer<string>
Returns
GetPrimaryKeys(DataConnection, IEnumerable<TableSchema>, GetSchemaOptions)
protected abstract IReadOnlyCollection<PrimaryKeyInfo> GetPrimaryKeys(DataConnection dataConnection, IEnumerable<TableSchema> tables, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- tablesIEnumerable<TableSchema>
- optionsGetSchemaOptions
Returns
GetProcedureParameters(DataConnection, IEnumerable<ProcedureInfo>, GetSchemaOptions)
protected virtual List<ProcedureParameterInfo>? GetProcedureParameters(DataConnection dataConnection, IEnumerable<ProcedureInfo> procedures, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- proceduresIEnumerable<ProcedureInfo>
- optionsGetSchemaOptions
Returns
GetProcedureResultColumns(DataTable, GetSchemaOptions)
protected virtual List<ColumnSchema> GetProcedureResultColumns(DataTable resultTable, GetSchemaOptions options)Parameters
- resultTableDataTable
- optionsGetSchemaOptions
Returns
GetProcedureSchema(DataConnection, string, CommandType, DataParameter[], GetSchemaOptions)
protected virtual DataTable? GetProcedureSchema(DataConnection dataConnection, string commandText, CommandType commandType, DataParameter[] parameters, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- commandTextstring
- commandTypeCommandType
- parametersDataParameter[]
- optionsGetSchemaOptions
Returns
GetProcedures(DataConnection, GetSchemaOptions)
protected virtual List<ProcedureInfo>? GetProcedures(DataConnection dataConnection, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- optionsGetSchemaOptions
Returns
GetProviderSpecificProcedures(DataConnection)
protected virtual List<ProcedureSchema>? GetProviderSpecificProcedures(DataConnection dataConnection)Parameters
- dataConnectionDataConnection
Returns
GetProviderSpecificTables(DataConnection, GetSchemaOptions)
protected virtual List<TableSchema>? GetProviderSpecificTables(DataConnection dataConnection, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- optionsGetSchemaOptions
Returns
GetProviderSpecificType(string?)
protected virtual string? GetProviderSpecificType(string? dataType)Parameters
- dataTypestring
Returns
GetProviderSpecificTypeNamespace()
protected abstract string? GetProviderSpecificTypeNamespace()Returns
GetSchema(DataConnection, GetSchemaOptions?)
Returns database schema. Note that it is recommended to call this method outside of transaction as some providers do not support it or behave incorrectly. At least following providers shouldn't be called in transaction:
- MySQL;
- Microsoft SQL Server;
- Sybase;
- DB2.
public virtual DatabaseSchema GetSchema(DataConnection dataConnection, GetSchemaOptions? options = null)Parameters
- dataConnectionDataConnection
- Data connection to use to read schema from. 
- optionsGetSchemaOptions
- Schema read configuration options. 
Returns
- DatabaseSchema
- Returns database schema information. 
GetSystemType(string?, string?, DataTypeInfo?, int?, int?, int?, GetSchemaOptions)
protected virtual Type? GetSystemType(string? dataType, string? columnType, DataTypeInfo? dataTypeInfo, int? length, int? precision, int? scale, GetSchemaOptions options)Parameters
- dataTypestring
- columnTypestring
- dataTypeInfoDataTypeInfo
- lengthint?
- precisionint?
- scaleint?
- optionsGetSchemaOptions
Returns
GetTables(DataConnection, GetSchemaOptions)
protected abstract List<TableInfo> GetTables(DataConnection dataConnection, GetSchemaOptions options)Parameters
- dataConnectionDataConnection
- optionsGetSchemaOptions
Returns
InitProvider(DataConnection)
protected virtual void InitProvider(DataConnection dataConnection)Parameters
- dataConnectionDataConnection
LoadProcedureTableSchema(DataConnection, GetSchemaOptions, ProcedureSchema, string, List<TableSchema>)
protected virtual void LoadProcedureTableSchema(DataConnection dataConnection, GetSchemaOptions options, ProcedureSchema procedure, string commandText, List<TableSchema> tables)Parameters
- dataConnectionDataConnection
- optionsGetSchemaOptions
- procedureProcedureSchema
- commandTextstring
- tablesList<TableSchema>
ProcessSchema(DatabaseSchema, GetSchemaOptions)
protected virtual DatabaseSchema ProcessSchema(DatabaseSchema databaseSchema, GetSchemaOptions schemaOptions)Parameters
- databaseSchemaDatabaseSchema
- schemaOptionsGetSchemaOptions
Returns
ToTypeName(Type?, bool)
public static string ToTypeName(Type? type, bool isNullable)Parameters
Returns
ToValidName(string)
public static string ToValidName(string name)Parameters
- namestring