Class DatabaseSchemaLoader
Helper class for simple loading of database schemas. It contains inner list of different loaders, so it can be used for loading database schema for different databases. Fresh database schema is loaded for every request, it means, loaded schemas are not cached.
Inheritance
Implements
Namespace: Kros.Data.Schema
Assembly: Kros.Utils.dll
Syntax
public class DatabaseSchemaLoader : IDatabaseSchemaLoader
  Remarks
Class is a wrapper for loaders for different databases and so it allows loading of database schema for any known database type. More loaders can be added by AddSchemaLoader(IDatabaseSchemaLoader)
The class is intended for static use, using property Default. By default, it contains loader for Microsoft SQL Server (SqlServerSchemaLoader.
Examples
  Properties
Default
Instance of DatabaseSchemaLoader intended for general use. It contains loader for Microsoft SQL Server
by default (SqlServerSchemaLoader).
Declaration
public static DatabaseSchemaLoader Default { get; }
  Property Value
| Type | Description | 
|---|---|
| DatabaseSchemaLoader | 
Methods
AddSchemaLoader(IDatabaseSchemaLoader)
Adds loader to the list of loaders.
Declaration
public void AddSchemaLoader(IDatabaseSchemaLoader loader)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IDatabaseSchemaLoader | loader | Specific database schema loader.  | 
      
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentNullException | Value of   | 
      
ClearSchemaLoaders()
Removes all loaders in the list.
Declaration
public void ClearSchemaLoaders()
  LoadSchema(Object)
Declaration
public DatabaseSchema LoadSchema(object connection)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | connection | 
Returns
| Type | Description | 
|---|---|
| DatabaseSchema | 
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentNullException | Value of   | 
      
| System.ArgumentException | Loader for connection type specified by   | 
      
LoadTableSchema(Object, String)
Declaration
public TableSchema LoadTableSchema(object connection, string tableName)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | connection | |
| System.String | tableName | 
Returns
| Type | Description | 
|---|---|
| TableSchema | 
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentNullException | Value of any parameter is null.  | 
      
| System.ArgumentException | 
RemoveSchemaLoader(IDatabaseSchemaLoader)
Removes loader from the list of loaders.
Declaration
public void RemoveSchemaLoader(IDatabaseSchemaLoader loader)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IDatabaseSchemaLoader | loader | Specific database schema loader to be removed from the list.  | 
      
SupportsConnectionType(Object)
Checks, if database schema from connection can be loaded.
Declaration
public bool SupportsConnectionType(object connection)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | connection | Database connection.  | 
      
Returns
| Type | Description | 
|---|---|
| System.Boolean | true if loading schema for   |