Teknologian jakaminen

SqlSugar - Käytä SqlSugaria usean tietokannan toimintoihin

2024-07-12

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

SqlSugarin käyttäminen usean tietokannan toimintojen suorittamiseen sisältää pääasiassa seuraavat vaiheet:

1. Määritä tietokantayhteys

Ensin sinun on asetettava projektisi konfigurointitiedosto (esim.appsettings.jsonweb.configtaiapp.config ) Määritä useiden tietokantojen yhteysmerkkijonot. Jokainen yhteysmerkkijono vastaa eri tietokantaa.

Esimerkiksi sisäänappsettings.json, voit määrittää sen seuraavasti:

 

json复制代码

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

2. Luo SqlSugarClient-instanssi

Jokaista käytettävää tietokantaa varten sinun on luotava aSqlSugarClientja välitä vastaava tietokantayhteyskokoonpano luodessasi sitä.

 

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. Suorita tietokantatoiminnot

Nyt voit käyttää näitäSqlSugarClient esimerkki tietokantatoimintojen suorittamiseen. Valitse yrityksesi tarpeiden mukaan vastaava esiintymä vastaavan tietokannan käyttöä varten.

 

csharp复制代码

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

4. Tietokantojen välisiä toimintoja koskevat varotoimet

  • Tietokantojen välinen kysely : SqlSugar itse ei tue suoraan tietokantojen välisiä yhteiskyselyjä (JOIN). Jos sinun on suoritettava hajautettuja kyselyitä eri tietokantojen välillä, sinun on ehkä yhdistettävä tiedot sovelluskerroksessa tai harkittava tietokantatason ratkaisun käyttöä (kuten SQL Serverin linkitettyä palvelinta).
  • tapahtuman käsittely : Toiminnoissa, jotka edellyttävät tietojen yhdenmukaisuutta useiden tietokantojen välillä, saatat haluta käyttää hajautettuja tapahtumia. SqlSugar ei itsessään tarjoa hajautettua tapahtumatukea, mutta voit käyttää .NET:iäSystem.Transactions Luokat nimiavaruudessa hajautettujen tapahtumien hallintaa varten. Ole kuitenkin tietoinen hajautettujen tapahtumien tehokkuudesta ja monimutkaisuudesta.
  • Suorituskykynäkökohdat : Kun suoritat usean tietokannan toimintoja, ota huomioon kunkin tietokannan suorituskyky ja kuormitus. Vältä suuria määriä samanaikaisia ​​toimintoja useissa tietokannoissa samanaikaisesti, mikä voi aiheuttaa suorituskykyongelmia.

5. Yhteenveto

SqlSugarin käyttäminen usean tietokannan toimintoihin edellyttää pääasiassa useiden tietokantayhteyksien määrittämistä ja useiden luomistaSqlSugarClient Ilmentymä ja valitse vastaava ilmentymä suorittaaksesi tietokantatoimintoja liiketoiminnan tarpeiden mukaan. On huomattava, että tietokantojen väliset kyselyt ja hajautettu tapahtumien käsittely voivat vaatia lisähuomiota ja -kokoonpanoja. Lisäksi tulee kiinnittää huomiota kunkin tietokannan suorituskykyyn ja kuormitukseen järjestelmän vakauden ja suorituskyvyn varmistamiseksi.

Liitteenä on SqlSugar-sovelluskoodi:

käyttämällä SqlSugar;


//Luo tietokantaobjekti (käyttö on sama kuin EF Dapppperilla varmistaaksesi säikeen turvallisuuden uusien kautta)
SqlSugarClient Db = uusi SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "datasource=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = tosi
},
db =&gt; {
 
db.Aop.OnLogExecuting = (sql, pars) =&gt;
    {

//Hanki natiivi SQL-suositus 5.1.4.63, suorituskyky on OK
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));

//Parametrivapaan SQL:n saaminen vaikuttaa suorituskykyyn Erityisen suurta SQL:ää, jossa on paljon parametreja, tulisi käyttää virheenkorjaukseen.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))


    };

//Huomaa, että usealla vuokralla on useita asetuksia.
//db.GetConnection(i).Aop

});

// Rakenna tietokanta
Db.DbMaintenance.CreateDatabase(); // Dameng ja Oracle eivät tue tietokannan luomista

//Luo taulukko (katso asiakirjan siirto)
Db.CodeFirst.InitTables<Student> (); //Kaikki kirjastot tukevat

//Tee kysely koko taulukosta
var list = Db.Queryable<Student> ().Listata();

//lisää
Db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).Suorita komento();

//uusi
Db.Päivitettävä(uusi opiskelija() { Id = 1, SchoolId = 2, Name = "jack2" }).Suorita komento();

//poistaa
Db.Poistettava<Student> ().Missä(se =&gt; se.Id == 1).SuoritaCommand();


Console.WriteLine("Onnittelut aloittamisesta, sinun tarvitsee vain tarkistaa dokumentaatio myöhemmin.");
Console.ReadKey();
 

//Entiteetillä on sama rakenne kuin tietokannassa
julkisen luokan opiskelija
{
//Tiedot lisääntyvät itsestään ja ne on lisättävä IsIdentityllä
//Tietokanta on ensisijainen avain ja se on lisättävä IsPrimaryKeyllä
//Huomaa: Kahden attribuutin on oltava täysin tietokannan mukaisia
[SugarColumn(IsPrimaryKey = tosi, IsIdentity = tosi)]
public int Id { get; aseta; }
julkinen int? SchoolId { get; aseta; }
julkinen merkkijono? Nimi { get; aseta; }
}