Technology sharing

SqlSugar-usus SqlSugar pro multi- database operationes

2024-07-12

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

Usura SqlSugar ad operationes multi- databases faciendas principaliter involvit sequentes gradus:

database nexu 1. Configure

Primum, limam configurationem in tuo project (v.g.appsettings.jsonweb.configor *app.config ) Configurare nexum chordarum pro pluribus databases. Quaelibet iunctio chorda diversae datorum correspondet.

Exempli gratiaappsettings.jsonconfigurare potes sic;

 

json复制代码

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

2. exempli gratia crea SqlSugarClient

Pro singulis database quod debes operari, debes creare aSqlSugarClientexempli gratia, et transite in conformatione datorum respondentis configurationis cum eam creando.

 

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. perform database operationes

Nunc his uti potesSqlSugarClient exempli gratia res database praestare. Secundum negotia tua necessaria, instantiam elige correspondentem ad datorum congruentem operandum.

 

csharp复制代码

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

4. Cautiones ad crucem-database res

  • Quaestionum crucis-database : SqlSugar se queries iuncturas cross-databasi non directe sustinet (JOIN). Si interrogationes foederatas inter varias databases conficere debes, notitia in schedula iungi debes, aut solutionem database-gradu adhibitam considera (ut SQL Servo Servo coniunctus est).
  • transaction processus : Pro operationibus quae constantiam datam per plures databases requirunt, transactionibus distributis uti velis. SqlSugar ipsum subsidium transactionis distributae directe non praebet, sed uti potes .NETSystem.Transactions Classes in spatio nominali ad transactiones distribuendas administrare. Sed scito de executione et multiplicitate rerum distributarum.
  • euismod considerations : Cum operationes multi- databases faciendo, considera uniuscuiusque datorum executionem et sarcinam. Magnas concurrentes operationes in multiplicibus databases simul evitatis copiis, quae quaestiones perficiendi causare possunt.

5. Libri

SqlSugar utens operationes multi- databases praecipue implicat configurantes multiplices nexus datorum et multiplices creandoSqlSugarClient Exempli gratia, et eligere debitam instantiam ad faciendas operationes databases secundum necessitates negotiorum. Animadvertendum est interrogationes crucis-databasi et processus transactionis distribui posse considerationes et configurationes additas requirere. Praeterea attendendum est ad singulas databases praestandas et ad onusndas ratio stabilitatis et ad effectum deducendi.

Coniuncta est SqlSugar applicatione codice:

utens SqlSugar;


// crea database object (usus idem est ac EF Dapppper ut per novam salutem sequela)
SqlSugarClient Db = novus SqlSugarClient (novus ConnectionConfig()
{
ConnectionString = "datasource=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = true
},
db =&gt; {
 
db.Aop.OnLogExecuting = (sql, pars) =&gt;
    {

// Get indigena SQL commendaticiis 5.1.4.63, effectus est OK
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));

// Questus parametri gratis SQL ictum in perficientur habet.
//Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars))


    };

//Nota quod multi-tenancia plures habet occasus.
//db.GetConnection(i).Aop

});

//Aedifica database
Db.DbMaintenance.CreateDatabase();

// mensam crea (videatur documentum migrationis)
Db.CodeFirst.InitTables<Student> ();

// Query omnes in mensa
var list = Db.Queryable<Student> ().ToList();

// insert
Db.Insertable(new Student() { SchoolId = 1, Name = "James" }).ExecuteCommand();

// renovare
Db.Updateable(nova Student() { Id = 1, SchoolId = 2, Name = "jack2"}).ExecuteCommand();

// delete
Db.Deleteable<Student> ().Ubi(it =&gt; it.Id == 1).Execute Praeceptum();


Console.WriteLine ("Gratulor initii, vos iustus postulo postea documenta retentare.");
Console.ReadKey();
 

// res eandem structuram ac database
publico genere Student
{
// The data est auto-augendae et addenda cum IsIdentity
//The database est primaria clavis et addenda est cum IsPrimaryKey
// Nota: Duo attributa omnino congruere debent cum database
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id {get; profectus est; }
publicum int? SchoolId {get; profectus est; }
publica chorda? Name {get; profectus est; }
}