Κοινή χρήση τεχνολογίας

SqlSugar-Χρησιμοποιήστε το SqlSugar για λειτουργίες πολλαπλών βάσεων δεδομένων

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Η χρήση του SqlSugar για την εκτέλεση λειτουργιών πολλών βάσεων δεδομένων περιλαμβάνει κυρίως τα ακόλουθα βήματα:

1. Διαμορφώστε τη σύνδεση βάσης δεδομένων

Αρχικά, πρέπει να ορίσετε το αρχείο διαμόρφωσης στο έργο σας (π.χ.appsettings.jsonweb.configήapp.config ) Διαμόρφωση συμβολοσειρών σύνδεσης για πολλές βάσεις δεδομένων. Κάθε συμβολοσειρά σύνδεσης αντιστοιχεί σε διαφορετική βάση δεδομένων.

Για παράδειγμα, σεappsettings.json, μπορείτε να το ρυθμίσετε ως εξής:

 

json复制代码

{
"ConnectionStrings": {
"DefaultConnectionSqlServer": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;",
"DefaultConnectionMySql": "server=localhost;user=root;password=myPassword;database=myOtherDataBase;",
// 可以继续添加更多数据库的连接字符串
}
}

2. Δημιουργήστε παράδειγμα SqlSugarClient

Για κάθε βάση δεδομένων που πρέπει να λειτουργήσετε, πρέπει να δημιουργήσετε έναSqlSugarClientπαράδειγμα, και περάστε στην αντίστοιχη διαμόρφωση σύνδεσης βάσης δεδομένων κατά τη δημιουργία της.

 

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,
// 其他配置...
});

3. Εκτελέστε λειτουργίες βάσης δεδομένων

Τώρα μπορείτε να τα χρησιμοποιήσετεSqlSugarClient παράδειγμα για την εκτέλεση λειτουργιών βάσης δεδομένων. Ανάλογα με τις ανάγκες της επιχείρησής σας, επιλέξτε το αντίστοιχο στιγμιότυπο για να λειτουργήσετε την αντίστοιχη βάση δεδομένων.

 

csharp复制代码

// 使用SqlServer数据库实例插入数据
var user = new User { Name = "张三", Age = 20 };
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity();
// 使用MySql数据库实例查询数据
var userList = dbClientMySql.Queryable<User>().ToList();

4. Προφυλάξεις για λειτουργίες μεταξύ βάσεων δεδομένων

  • Ερώτημα μεταξύ βάσεων δεδομένων : Το ίδιο το SqlSugar δεν υποστηρίζει άμεσα κοινά ερωτήματα μεταξύ βάσεων δεδομένων (JOIN). Εάν χρειάζεται να εκτελέσετε ενοποιημένα ερωτήματα μεταξύ διαφορετικών βάσεων δεδομένων, ίσως χρειαστεί να συγχωνεύσετε τα δεδομένα στο επίπεδο εφαρμογής ή να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε μια λύση σε επίπεδο βάσης δεδομένων (όπως ο συνδεδεμένος διακομιστής του SQL Server).
  • επεξεργασία συναλλαγών : Για λειτουργίες που απαιτούν συνέπεια δεδομένων σε πολλές βάσεις δεδομένων, ίσως θέλετε να χρησιμοποιήσετε κατανεμημένες συναλλαγές. Το ίδιο το SqlSugar δεν παρέχει απευθείας υποστήριξη κατανεμημένων συναλλαγών, αλλά μπορείτε να χρησιμοποιήσετε το .NETSystem.Transactions Κλάσεις στον χώρο ονομάτων για τη διαχείριση κατανεμημένων συναλλαγών. Ωστόσο, θα πρέπει να γνωρίζετε την απόδοση και την πολυπλοκότητα των κατανεμημένων συναλλαγών.
  • Θεωρήσεις απόδοσης : Όταν εκτελείτε λειτουργίες πολλών βάσεων δεδομένων, λάβετε υπόψη την απόδοση και τη φόρτωση κάθε βάσης δεδομένων. Αποφύγετε μεγάλες ποσότητες ταυτόχρονων λειτουργιών σε πολλές βάσεις δεδομένων ταυτόχρονα, οι οποίες μπορεί να προκαλέσουν προβλήματα απόδοσης.

5. Περίληψη

Η χρήση του SqlSugar για λειτουργίες πολλών βάσεων δεδομένων περιλαμβάνει κυρίως τη διαμόρφωση πολλαπλών συνδέσεων βάσεων δεδομένων και τη δημιουργία πολλαπλώνSqlSugarClient Παράδειγμα και επιλέξτε το αντίστοιχο στιγμιότυπο για να εκτελέσετε λειτουργίες βάσης δεδομένων με βάση τις επιχειρηματικές ανάγκες. Θα πρέπει να σημειωθεί ότι τα ερωτήματα μεταξύ βάσεων δεδομένων και η κατανεμημένη επεξεργασία συναλλαγών ενδέχεται να απαιτούν πρόσθετες εκτιμήσεις και διαμορφώσεις. Επιπλέον, θα πρέπει να δοθεί προσοχή στην απόδοση και το φορτίο κάθε βάσης δεδομένων για να διασφαλιστεί η σταθερότητα και η απόδοση του συστήματος.

Επισυνάπτεται ο κωδικός εφαρμογής SqlSugar:

χρησιμοποιώντας SqlSugar?


//Δημιουργία αντικειμένου βάσης δεδομένων (η χρήση είναι ίδια με το EF Dapppper για να διασφαλιστεί η ασφάλεια του νήματος μέσω του νέου)
SqlSugarClient Db = νέο SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "datasource=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = αληθές
},
db =&gt; {
 
db.Aop.OnLogExecuting = (sql, pars) =&gt;
    {

//Λήψη εγγενούς σύστασης SQL 5.1.4.63, η απόδοση είναι εντάξει
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));

//Η λήψη SQL χωρίς παραμέτρους έχει αντίκτυπο στην απόδοση Ιδιαίτερα μεγάλη SQL με πολλές παραμέτρους θα πρέπει να χρησιμοποιείται για τον εντοπισμό σφαλμάτων.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))


    };

//Σημειώστε ότι η πολλαπλή μίσθωση έχει πολλές ρυθμίσεις.
//db.GetConnection(i).Aop

});

//Δημιουργία βάσης δεδομένων
Db.DbMaintenance.CreateDatabase() // Dameng και Oracle δεν υποστηρίζουν τη δημιουργία βάσης δεδομένων

//Δημιουργία πίνακα (βλ. μετεγκατάσταση εγγράφου)
Db.CodeFirst.InitTables<Student> () //Υποστήριξη όλων των βιβλιοθηκών

//Ερώτηση σε όλο τον πίνακα
var list = Db.Queryable<Student> ().ToList();

//εισάγετε
Db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();

//ανανεώνω
Db.Updateable(new Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand();

//διαγράφω
Db.Διαγράψιμο<Student> ().Where(it =&gt; it.Id == 1).ExecuteCommand();


Console.WriteLine("Συγχαρητήρια για το ξεκίνημα, απλά πρέπει να ελέγξετε την τεκμηρίωση αργότερα.");
Console.ReadKey();
 

//Η οντότητα έχει την ίδια δομή με τη βάση δεδομένων
Μαθητής δημόσιας τάξης
{
//Τα δεδομένα αυξάνονται αυτόματα και πρέπει να προστεθούν με το IsIdentity
//Η βάση δεδομένων είναι το πρωτεύον κλειδί και πρέπει να προστεθεί με το IsPrimaryKey
//Σημείωση: Δύο χαρακτηριστικά πρέπει να είναι απολύτως συνεπή με τη βάση δεδομένων
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; σειρά; }
δημόσια έν SchoolId { get; σειρά; }
δημόσια χορδή; Όνομα { get; σειρά; }
}