2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Die Verwendung von SqlSugar zum Ausführen von Multi-Datenbank-Vorgängen umfasst hauptsächlich die folgenden Schritte:
Zuerst müssen Sie die Konfigurationsdatei in Ihrem Projekt festlegen (z. B.appsettings.json
、web.config
oderapp.config
) Konfigurieren Sie Verbindungszeichenfolgen für mehrere Datenbanken. Jede Verbindungszeichenfolge entspricht einer anderen Datenbank.
Zum Beispiel inappsettings.json
, Sie können es wie folgt konfigurieren:
json复制代码
{ | |
"ConnectionStrings": { | |
"DefaultConnectionSqlServer": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;", | |
"DefaultConnectionMySql": "server=localhost;user=root;password=myPassword;database=myOtherDataBase;", | |
// 可以继续添加更多数据库的连接字符串 | |
} | |
} |
Für jede Datenbank, die Sie bearbeiten müssen, müssen Sie eine erstellenSqlSugarClient
Instanz und übergeben Sie beim Erstellen die entsprechende Datenbankverbindungskonfiguration.
csharp复制代码
using SqlSugar; | |
// 创建SqlServer数据库的SqlSugarClient实例 | |
var dbClientSqlServer = new SqlSugarClient(new ConnectionConfig() | |
{ | |
ConnectionString = Configuration.GetConnectionString("DefaultConnectionSqlServer"), // 从配置文件获取连接字符串 | |
DbType = DbType.SqlServer, | |
IsAutoCloseConnection = true, | |
// 其他配置... | |
}); | |
// 创建MySql数据库的SqlSugarClient实例 | |
var dbClientMySql = new SqlSugarClient(new ConnectionConfig() | |
{ | |
ConnectionString = Configuration.GetConnectionString("DefaultConnectionMySql"), // 从配置文件获取连接字符串 | |
DbType = DbType.MySql, | |
IsAutoCloseConnection = true, | |
// 其他配置... | |
}); |
Jetzt können Sie diese verwendenSqlSugarClient
Instanz zum Ausführen von Datenbankoperationen. Wählen Sie entsprechend Ihren Geschäftsanforderungen die entsprechende Instanz aus, um die entsprechende Datenbank zu betreiben.
csharp复制代码
// 使用SqlServer数据库实例插入数据 | |
var user = new User { Name = "张三", Age = 20 }; | |
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity(); | |
// 使用MySql数据库实例查询数据 | |
var userList = dbClientMySql.Queryable<User>().ToList(); |
System.Transactions
Klassen im Namespace zur Verwaltung verteilter Transaktionen. Beachten Sie jedoch die Leistung und Komplexität verteilter Transaktionen.Die Verwendung von SqlSugar für Vorgänge mit mehreren Datenbanken umfasst hauptsächlich das Konfigurieren und Erstellen mehrerer DatenbankverbindungenSqlSugarClient
Instanz, und wählen Sie die entsprechende Instanz aus, um Datenbankvorgänge entsprechend den Geschäftsanforderungen auszuführen. Es ist zu beachten, dass datenbankübergreifende Abfragen und verteilte Transaktionsverarbeitung möglicherweise zusätzliche Überlegungen und Konfigurationen erfordern. Darüber hinaus sollte auf die Leistung und Auslastung jeder Datenbank geachtet werden, um die Stabilität und Leistung des Systems sicherzustellen.
Im Anhang finden Sie den SqlSugar-Anwendungscode:
mit SqlSugar;
//Datenbankobjekt erstellen (die Verwendung ist die gleiche wie bei EF Dapppper, um die Thread-Sicherheit durch neue zu gewährleisten)
SqlSugarClient Db = neuer SqlSugarClient(neue ConnectionConfig()
{
Verbindungszeichenfolge = "Datenquelle=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = true
},
db => {
db.Aop.OnLogExecuting = (sql, pars) =>
{
// Holen Sie sich die native SQL-Empfehlung 5.1.4.63, die Leistung ist in Ordnung
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
//Parameterfreies SQL zu erhalten hat Auswirkungen auf die Leistung. Besonders großes SQL mit vielen Parametern sollte zum Debuggen verwendet werden.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))
};
//Beachten Sie, dass es für die Mandantenfähigkeit mehrere Einstellungen gibt.
//db.GetConnection(i).Aop
});
//Datenbank erstellen
Db.DbMaintenance.CreateDatabase(); // Dameng und Oracle unterstützen die Datenbankerstellung nicht
//Eine Tabelle erstellen (siehe Dokumentmigration)
Db.CodeFirst.InitTables<Student> (); //Alle Bibliotheken unterstützen
//Die gesamte Tabelle abfragen
var Liste = Db.Abfragbar<Student> ().Auflisten();
//einfügen
Db.Insertable(neuer Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();
//erneuern
Db.Updateable(neuer Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand();
//löschen
Db.Löschbar<Student> ().Wo(it => it.Id == 1).ExecuteCommand();
Console.WriteLine("Herzlichen Glückwunsch zum Start, Sie müssen später nur noch die Dokumentation durchsehen.");
Console.ReadKey();
//Die Entität hat die gleiche Struktur wie die Datenbank
öffentliche Klasse Student
{
//Die Daten erhöhen sich selbst und müssen mit IsIdentity hinzugefügt werden
//Die Datenbank ist der Primärschlüssel und muss mit IsPrimaryKey hinzugefügt werden
//Hinweis: Zwei Attribute müssen vollständig mit der Datenbank übereinstimmen
[SugarColumn(IstPrimärschlüssel = wahr, IstIdentität = wahr)]
öffentliche int Id { abrufen; festlegen; }
öffentliche int? SchoolId { abrufen; festlegen; }
öffentliche Zeichenfolge? Name { abrufen; festlegen; }
}