MesoXPO Framework
Code-Dokumentation
Lade ...
Suche ...
Keine Treffer
MesoXPO.DataLayerManager Klassenreferenzsealed

Verwaltet DataLayer für SqlServer und speichert bereits für einen ConnectionString erzeugte DataLayer ab, damit diese nicht neu erzeugt werden. Mehr ...

Zusammengehörigkeiten von MesoXPO.DataLayerManager:

Öffentliche, statische Methoden

static void AddServernameAlias (string servername, string alias)
static string ReplaceServerAlias (string servername)
 Liefert den Alias für einen SQL-Servernamen falls vorhanden, ansonsten wieder den Servernamen.
static IDataLayer CreateDataLayer (string serverName, int port, string databaseName, string userName, string password, bool threadSafe=false, bool systemDb=false, bool usePooling=false, Type[] additionalTypes=null, bool loadUserdefinedTables=false, bool loadUserdefinedColumns=false, bool dontUseDataLayerCache=false)
 Erzeugt einen DataLayer, der automatisch die nötigen Optionen setzt und die Typen der Mesonic-Datenbank (entweder Mandant oder System) in das XPDictionary lädt XpoDefault.GetDataLayer(connectionString, dict, AutoCreateOption.SchemaAlreadyExists);.
static void ReplacePersistentAttribute (XPTypeInfo typeInfo, string newPersistent)
 Ändert das Tabellen-Mapping für den angegebenen Typ.
static IDataLayer CreateDataLayer (string connectionString, XPDictionary dictionary, AutoCreateOption autoCreateOption=AutoCreateOption.SchemaAlreadyExists, bool threadSafe=false, bool usePooling=false, bool dontUseDataLayerCache=false, Dictionary< Type, string > typeToTableMapping=null)
 Erzeugt einen IDataLayer für die angegebene Verbindungszeichenfolge und das dictionary.
static IDataLayer CreateDataLayer (string connectionString, bool threadSafe=false, bool systemDb=false, bool usePooling=false, Type[] additionalTypes=null, bool loadUserdefinedTables=false, bool loadUserdefinedColumns=false, bool dontUseDataLayerCache=false)
 Erzeugt einen IDataLayer für die angegebene Verbindungszeichenfolge, wobei die Datentypen der Mandantendatenbank als Persistent-Types verwendet werden. Bei gesetztem systemDb Parameter, wwerden die System-Datentabellen verwendet (über IsSystemtableAttribute spezifiziert).
static IDataLayer CreateDataLayer (SystemUnitOfWork systemUnitOfWork, string companyNr, bool threadSafe=false, bool usePooling=false, Type[] additionalTypes=null, bool loadUserdefinedTables=false, bool loadUserdefinedColumns=false, bool dontUseDataLayerCache=false)
 Erzeugt einen IDataLayer für den angegebenen Mandanten aus systemUnitOfWork , wobei die Datentypen der Mandantendatenbank als Persistent-Types verwendet werden.
static void DropObjectTypesForUserDefinedTypes (string connectionStringMesoSystem, Type[] userdefinedTypes)
 Löscht die Spalte ObjectType aus den Basisklassen der angegebenen benutzerdefinierten Typen. Ist der Typ nicht abgeleitet, wird auch nichts durchgeführt.
static XPDictionary CreateObjectTypesForUserDefinedTypes (string connectionStringMesoSystem, Type[] userdefinedTypes, bool dropColumn=false)
 Erzeugt die XPObjectType Datensätze für benutzerdefinierte Typen. Delegiert an UserdefinedTypeManager.
static void LoadUserdefinedTablesAndColumns (string connectionString, XPDictionary dict, bool loadUserdefinedColumns=false, bool loadUserdefinedTables=false)
 Lädt benutzerdefinierte Tabellen und Spalten in das vorhandene XPDictionary. Delegiert an UserdefinedTypeManager.
static void DisposeThreadsafeDal (string connectionString)
static void DisposeDal (string connectionString)
static void DisposeAll ()
 Bereinigt alle gecachten DataLayer. Sollte beim Herunterfahren der Anwendung aufgerufen werden.

Propertys

static int DataLayerCacheCount [get]
static int DataLayerCacheCountThreadSafe [get]
static DataLayerManager Instance = new() [get]

Ausführliche Beschreibung

Verwaltet DataLayer für SqlServer und speichert bereits für einen ConnectionString erzeugte DataLayer ab, damit diese nicht neu erzeugt werden.

Dokumentation der Elementfunktionen

◆ CreateDataLayer() [1/4]

IDataLayer MesoXPO.DataLayerManager.CreateDataLayer ( string connectionString,
bool threadSafe = false,
bool systemDb = false,
bool usePooling = false,
Type[] additionalTypes = null,
bool loadUserdefinedTables = false,
bool loadUserdefinedColumns = false,
bool dontUseDataLayerCache = false )
inlinestatic

Erzeugt einen IDataLayer für die angegebene Verbindungszeichenfolge, wobei die Datentypen der Mandantendatenbank als Persistent-Types verwendet werden. Bei gesetztem systemDb Parameter, wwerden die System-Datentabellen verwendet (über IsSystemtableAttribute spezifiziert).

Parameter
connectionString
threadSafe
systemDb
usePooling
additionalTypesPersisitente Klassen, die zusätzlich im Dictionary bekannt gemacht werden sollen. ACHTUNG: Diese müssen vor Verwendung über die Methode CreateObjectTypesForUserDefinedTypes bekannt gemacht werden Bei abgeleiteten Klassen wird in der Basis-Tabelle die Spalte ObjectType angefügt und alle Datensätze der Tabelle mit dem neuen Typ versehen
loadUserdefinedTablesWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte definiert werden
loadUserdefinedColumnsWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Spalten in vorhandenen Standard-Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte derselben Spaltendefinition definiert werden
dontUseDataLayerCacheVerhindert, dass ein für den angegebnenen Connectionstring bereits erzeugter DataLayer wiederverwendet wird; dies kann für Szenarien nützlich sein, in welchen bewusst mit unterschiedlichen Typen im XPDictionary gearbeitet werden muss
Rückgabe
Ausnahmebehandlung
ArgumentNullException

◆ CreateDataLayer() [2/4]

IDataLayer MesoXPO.DataLayerManager.CreateDataLayer ( string connectionString,
XPDictionary dictionary,
AutoCreateOption autoCreateOption = AutoCreateOption::SchemaAlreadyExists,
bool threadSafe = false,
bool usePooling = false,
bool dontUseDataLayerCache = false,
Dictionary< Type, string > typeToTableMapping = null )
inlinestatic

Erzeugt einen IDataLayer für die angegebene Verbindungszeichenfolge und das dictionary.

Parameter
connectionString
dictionary
autoCreateOption
threadSafe
usePooling
dontUseDataLayerCacheVerhindert, dass ein für den angegebnenen Connectionstring bereits erzeugter DataLayer wiederverwendet wird; dies kann für Szenarien nützlich sein, in welchen bewusst mit unterschiedlichen Typen im XPDictionary gearbeitet werden muss
typeToTableMappingÄndert die zugeordnete physikalische Tabelle für die angegebenen Typen
Rückgabe
Ausnahmebehandlung
ArgumentNullException

◆ CreateDataLayer() [3/4]

IDataLayer MesoXPO.DataLayerManager.CreateDataLayer ( string serverName,
int port,
string databaseName,
string userName,
string password,
bool threadSafe = false,
bool systemDb = false,
bool usePooling = false,
Type[] additionalTypes = null,
bool loadUserdefinedTables = false,
bool loadUserdefinedColumns = false,
bool dontUseDataLayerCache = false )
inlinestatic

Erzeugt einen DataLayer, der automatisch die nötigen Optionen setzt und die Typen der Mesonic-Datenbank (entweder Mandant oder System) in das XPDictionary lädt XpoDefault.GetDataLayer(connectionString, dict, AutoCreateOption.SchemaAlreadyExists);.

Parameter
serverName
port
databaseName
userName
password
threadSafe
systemDb
usePooling
additionalTypesPersisitente Klassen, die zusätzlich im Dictionary bekannt gemacht werden sollen. ACHTUNG: Diese müssen vor Verwendung über die Methode CreateObjectTypesForUserDefinedTypes bekannt gemacht werden Bei abgeleiteten Klassen wird in der Basis-Tabelle die Spalte ObjectType angefügt und alle Datensätze der Tabelle mit dem neuen Typ versehen
loadUserdefinedTablesWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte definiert werden
loadUserdefinedColumnsWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Spalten in vorhandenen Standard-Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte derselben Spaltendefinition definiert werden
dontUseDataLayerCacheVerhindert, dass ein für den angegebnenen Connectionstring bereits erzeugter DataLayer wiederverwendet wird; dies kann für Szenarien nützlich sein, in welchen bewusst mit unterschiedlichen Typen im XPDictionary gearbeitet werden muss
Rückgabe
Ausnahmebehandlung
ArgumentNullException

◆ CreateDataLayer() [4/4]

IDataLayer MesoXPO.DataLayerManager.CreateDataLayer ( SystemUnitOfWork systemUnitOfWork,
string companyNr,
bool threadSafe = false,
bool usePooling = false,
Type[] additionalTypes = null,
bool loadUserdefinedTables = false,
bool loadUserdefinedColumns = false,
bool dontUseDataLayerCache = false )
inlinestatic

Erzeugt einen IDataLayer für den angegebenen Mandanten aus systemUnitOfWork , wobei die Datentypen der Mandantendatenbank als Persistent-Types verwendet werden.

Parameter
systemUnitOfWorkBestehende SystemUnitOfWork Verbindung zur Systemdatenbank
companyNrGewünschter Mandant aus der Systemdatenbank
threadSafe
usePooling
additionalTypesPersisitente Klassen, die zusätzlich im Dictionary bekannt gemacht werden sollen. ACHTUNG: Diese müssen vor Verwendung über die Methode CreateObjectTypesForUserDefinedTypes bekannt gemacht werden Bei abgeleiteten Klassen wird in der Basis-Tabelle die Spalte ObjectType angefügt und alle Datensätze der Tabelle mit dem neuen Typ versehen
loadUserdefinedTablesWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte definiert werden
loadUserdefinedColumnsWenn gesetzt, dann werden in das XpDictionary alle benutzerdefinierten Spalten in vorhandenen Standard-Tabellen geladen Nicht verwenden, wenn über den additionalTypes eigene abgeleitete Typen verwendet werden, da sonst für dieselbe Tabelle mehrere Objekte derselben Spaltendefinition definiert werden
dontUseDataLayerCacheVerhindert, dass ein für den angegebnenen Connectionstring bereits erzeugter DataLayer wiederverwendet wird; dies kann für Szenarien nützlich sein, in welchen bewusst mit unterschiedlichen Typen im XPDictionary gearbeitet werden muss
Rückgabe
Ausnahmebehandlung
ArgumentNullException

◆ DropObjectTypesForUserDefinedTypes()

void MesoXPO.DataLayerManager.DropObjectTypesForUserDefinedTypes ( string connectionStringMesoSystem,
Type[] userdefinedTypes )
inlinestatic

Löscht die Spalte ObjectType aus den Basisklassen der angegebenen benutzerdefinierten Typen. Ist der Typ nicht abgeleitet, wird auch nichts durchgeführt.

Parameter
connectionStringMesoSystem
userdefinedTypes

Löscht die Spalte ObjectType aus den Basisklassen der angegebenen benutzerdefinierten Typen. Delegiert an UserdefinedTypeManager.

◆ ReplacePersistentAttribute()

void MesoXPO.DataLayerManager.ReplacePersistentAttribute ( XPTypeInfo typeInfo,
string newPersistent )
inlinestatic

Ändert das Tabellen-Mapping für den angegebenen Typ.

Parameter
typeInfo
newPersistent

◆ ReplaceServerAlias()

string MesoXPO.DataLayerManager.ReplaceServerAlias ( string servername)
inlinestatic

Liefert den Alias für einen SQL-Servernamen falls vorhanden, ansonsten wieder den Servernamen.

Parameter
servername
Rückgabe