Ich verschiebe meine aktuelle Anwendung in eine Architektur mit mehreren Mandanten. Mit einer einzigen Codebasis muss ich mehrere Mandanten ansprechen. Ich benutze Single-Datenbank, Multiple-Schema-Ansatz. Jedem Mandanten wird ein eigenes Schema mit den Metadaten zugewiesen, die im Standardschema gespeichert sind.Verwenden mehrerer Datenbankschemas in einer Anwendung mit mehreren Mandanten
Anwendung wird mit ASP.NET MVC erstellt. Ich verwende Dapper, um eine Verbindung zu meinem SQL Server herzustellen. Ich habe 50+ Funktionen, die die Datenbank mit direkter Abfrage sowie gespeicherten Prozeduren aufruft. Gibt es eine Methode, mit der ich das Schema festlegen kann, wenn der Dapper für jeden Tenant initialisiert wird, ohne die Funktionen zu ändern.
Ich kann den Schemanamen dynamisch in meine Abfragen für jede Funktion hinzufügen. Dazu muss ich die vorhandenen Funktionen bearbeiten und Prozeduren speichern. Ich suche nach einer Alternative. Jeder Mieter trägt einen Schemanamen, daher kann ich auch kein XML verwenden. – Rifaj
Wenn Sie über Funktionen und gespeicherte Prozeduren verfügen, können Sie das Schema nicht von außen einfügen, es sei denn, Sie verwenden die dynamische Abfrage (EXEC) in der Funktion oder in der Stored Procedure. Dies kann jedoch zu Sicherheitsproblemen führen. –