Ich habe die folgende einzelne Datenbankstruktur:
Server
|
Database
+ Tables
+ Programmability(stored procedures)
In dem ich die folgende Methode verwende, um einen gespeicherten Prozedur-Aufruf mit Dapper auszuführen:
public List<Events> GetEvents()
{
using (var connection = new SqlConnection(SQLSettings.GetConnectionString()))
{
return connection.Query<Events>("GetEvents", commandType: CommandType.StoredProcedure).ToList();
}
}
Aber jetzt ändere ich das Backend in eine multiple Datenbankstruktur, wie:
Server
|
Database1
+ Tables
+ Programmability(stored procedures)
|
Database2
+ Tables
+ Programmability(stored procedures)
Meine Frage ist, wie muss ich meine Methode ändern, um sicherzustellen, dass es die richtige Datenbank trifft, in der sich die gespeicherte Prozedur befindet?
Sie stellen es mit der richtigen Verbindungszeichenfolge sicher.
using (var connection = new SqlConnection("Connection string of the first db"))
{
return connection.Query<Events>("GetEvents", commandType: CommandType.StoredProcedure).ToList();
}
using (var connection = new SqlConnection("Connection string of the second db"))
{
return connection.Query<Events>("GetEvents", commandType: CommandType.StoredProcedure).ToList();
}
Wenn Sie wissen, in welcher Datenbank (1 oder 2) Sie den SP finden, verwenden Sie eine der folgenden Möglichkeiten:
using (var connection = new SqlConnection(SQLSettings.GetConnectionString1()))
{ ... }
oder
using (var connection = new SqlConnection(SQLSettings.GetConnectionString2()))
{ ... }