2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
L'utilisation de SqlSugar pour effectuer des opérations multi-bases de données implique principalement les étapes suivantes :
Tout d'abord, vous devez définir le fichier de configuration dans votre projet (par ex.appsettings.json
、web.config
ouapp.config
) Configurez les chaînes de connexion pour plusieurs bases de données. Chaque chaîne de connexion correspond à une base de données différente.
Par exemple, dansappsettings.json
, vous pouvez le configurer comme ceci :
json复制代码
{ | |
"ConnectionStrings": { | |
"DefaultConnectionSqlServer": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;", | |
"DefaultConnectionMySql": "server=localhost;user=root;password=myPassword;database=myOtherDataBase;", | |
// 可以继续添加更多数据库的连接字符串 | |
} | |
} |
Pour chaque base de données sur laquelle vous devez opérer, vous devez créer unSqlSugarClient
instance et transmettez la configuration de connexion à la base de données correspondante lors de sa création.
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, | |
// 其他配置... | |
}); |
Maintenant vous pouvez les utiliserSqlSugarClient
instance pour effectuer des opérations de base de données. En fonction des besoins de votre entreprise, sélectionnez l'instance correspondante pour exploiter la base de données correspondante.
csharp复制代码
// 使用SqlServer数据库实例插入数据 | |
var user = new User { Name = "张三", Age = 20 }; | |
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity(); | |
// 使用MySql数据库实例查询数据 | |
var userList = dbClientMySql.Queryable<User>().ToList(); |
System.Transactions
Classes dans l'espace de noms pour gérer les transactions distribuées. Soyez cependant conscient des performances et de la complexité des transactions distribuées.L'utilisation de SqlSugar pour les opérations multi-bases de données implique principalement la configuration de plusieurs connexions à la base de données et la création de plusieursSqlSugarClient
Instance et sélectionnez l'instance correspondante pour effectuer des opérations de base de données en fonction des besoins de l'entreprise. Il convient de noter que les requêtes entre bases de données et le traitement des transactions distribuées peuvent nécessiter des considérations et des configurations supplémentaires. De plus, il convient de prêter attention aux performances et à la charge de chaque base de données pour garantir la stabilité et les performances du système.
Ci-joint le code de l'application SqlSugar :
en utilisant SqlSugar;
//Créer un objet de base de données (l'utilisation est la même que celle d'EF Dapppper pour garantir la sécurité des threads grâce au nouveau)
SqlSugarClient Db = nouveau SqlSugarClient(nouveau ConnectionConfig()
{
Chaîne de connexion = "datasource=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = vrai
},
db => {
db.Aop.OnLogExecuting = (sql, pars) =>
{
//Obtenir la recommandation SQL native 5.1.4.63, les performances sont correctes
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
//Obtenir du SQL sans paramètres a un impact sur les performances. Un SQL particulièrement volumineux avec de nombreux paramètres doit être utilisé pour le débogage.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))
};
//Notez que la multi-location a plusieurs paramètres.
//db.GetConnection(i).Aop
});
//Construire la base de données
Db.DbMaintenance.CreateDatabase(); // Dameng et Oracle ne prennent pas en charge la création de bases de données
//Créer un tableau (voir migration de documents)
Db.CodeFirst.InitTables<Student> (); //Toutes les bibliothèques prennent en charge
// Interroge toute la table
var liste = Db.Queryable<Student> ().Lister();
//insérer
Db.Insertable(nouvel étudiant() { SchoolId = 1, Nom = "jack" }).ExecuteCommand();
//renouveler
Db.Updateable(nouvel étudiant() { Id = 1, SchoolId = 2, Nom = "jack2" }).ExecuteCommand();
//supprimer
Db.Supprimable<Student> ().Où(it => it.Id == 1).ExecuteCommand();
Console.WriteLine("Félicitations pour votre démarrage, il vous suffira de consulter la documentation plus tard.");
Console.ReadKey();
//L'entité a la même structure que la base de données
classe publique Étudiant
{
//Les données sont auto-croissantes et doivent être ajoutées avec IsIdentity
//La base de données est la clé primaire et doit être ajoutée avec IsPrimaryKey
//Remarque : Deux attributs doivent être totalement cohérents avec la base de données
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { obtenir; définir; }
public int? SchoolId { obtenir; définir; }
chaîne publique ? Nom { get; set; }
}