le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
L'utilizzo di SqlSugar per eseguire operazioni multi-database prevede principalmente i seguenti passaggi:
Innanzitutto, devi impostare il file di configurazione nel tuo progetto (ad es.appsettings.json
、web.config
Oapp.config
) Configurare stringhe di connessione per più database. Ogni stringa di connessione corrisponde a un database diverso.
Ad esempio, nelappsettings.json
, puoi configurarlo in questo modo:
json复制代码
{ | |
"ConnectionStrings": { | |
"DefaultConnectionSqlServer": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;", | |
"DefaultConnectionMySql": "server=localhost;user=root;password=myPassword;database=myOtherDataBase;", | |
// 可以继续添加更多数据库的连接字符串 | |
} | |
} |
Per ogni database su cui si vuole operare è necessario creare un fileSqlSugarClient
istanza e passare la configurazione di connessione al database corrispondente durante la creazione.
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, | |
// 其他配置... | |
}); |
Ora puoi usare questiSqlSugarClient
istanza per eseguire operazioni sul database. In base alle tue esigenze aziendali, seleziona l'istanza corrispondente per gestire il database corrispondente.
csharp复制代码
// 使用SqlServer数据库实例插入数据 | |
var user = new User { Name = "张三", Age = 20 }; | |
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity(); | |
// 使用MySql数据库实例查询数据 | |
var userList = dbClientMySql.Queryable<User>().ToList(); |
System.Transactions
Classi nello spazio dei nomi per gestire le transazioni distribuite. Tuttavia, è necessario essere consapevoli delle prestazioni e della complessità delle transazioni distribuite.L'utilizzo di SqlSugar per operazioni multi-database implica principalmente la configurazione di più connessioni al database e la creazione di più connessioniSqlSugarClient
Istanza e selezionare l'istanza corrispondente per eseguire operazioni di database in base alle esigenze aziendali. È opportuno notare che le query tra database e l'elaborazione delle transazioni distribuite possono richiedere considerazioni e configurazioni aggiuntive. Inoltre, è necessario prestare attenzione alle prestazioni e al carico di ciascun database per garantire la stabilità e le prestazioni del sistema.
In allegato è riportato il codice dell'applicazione SqlSugar:
utilizzando SqlSugar;
//Crea un oggetto database (l'utilizzo è lo stesso di EF Dapppper per garantire la sicurezza del thread attraverso il nuovo)
SqlSugarClient Db = nuovo SqlSugarClient(nuovo ConnectionConfig()
{
Stringa di connessione = "datasource=demo.db",
Tipo di database = Tipo di database.Sqlite,
IsAutoCloseConnection = vero
},
database => {
db.Aop.OnLogExecuting = (sql, pars) =>
{
//Ottieni la raccomandazione SQL nativa 5.1.4.63, le prestazioni sono OK
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
//Ottenere SQL senza parametri ha un impatto sulle prestazioni. Per il debug è necessario utilizzare SQL particolarmente grande con molti parametri.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))
};
//Nota che la multi-tenancy ha diverse impostazioni.
//db.GetConnection(i).Aop
});
//Costruisci il database
Db.DbMaintenance.CreateDatabase(); // Dameng e Oracle non supportano la creazione di database
//Crea una tabella (vedi migrazione del documento)
Db.CodeFirst.InitTables<Student> (); //Tutte le librerie supportano
//Interroga tutta la tabella
var list = Db.Queryable<Student> ().Elencare();
//inserire
Db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();
//rinnovare
Db.Updateable(new Student() { Id = 1, SchoolId = 2, Nome = "jack2" }).ExecuteCommand();
//eliminare
Db.Eliminabile<Student> ().Dove(esso => esso.Id == 1).EseguiComando();
Console.WriteLine("Congratulazioni per aver iniziato, devi solo controllare la documentazione più tardi.");
Console.ReadKey();
//L'entità ha la stessa struttura del database
classe pubblica studente
{
//I dati sono autoaumentanti e devono essere aggiunti con IsIdentity
//Il database è la chiave primaria e deve essere aggiunto con IsPrimaryKey
//Nota: due attributi devono essere completamente coerenti con il database
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
pubblico int Id { ottieni; imposta; }
pubblico int? SchoolId { ottieni; imposta; }
stringa pubblica? Nome { get; set; }
}