informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Menggunakan SqlSugar untuk melakukan operasi multi-database terutama melibatkan langkah-langkah berikut:
Pertama, Anda perlu mengatur file konfigurasi di proyek Anda (mis.appsettings.json
、web.config
atauapp.config
) Konfigurasikan string koneksi untuk beberapa database. Setiap string koneksi berhubungan dengan database yang berbeda.
Misalnya, diappsettings.json
, Anda dapat mengonfigurasinya seperti ini:
json复制代码
{ | |
"ConnectionStrings": { | |
"DefaultConnectionSqlServer": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;", | |
"DefaultConnectionMySql": "server=localhost;user=root;password=myPassword;database=myOtherDataBase;", | |
// 可以继续添加更多数据库的连接字符串 | |
} | |
} |
Untuk setiap database yang perlu Anda operasikan, Anda perlu membuat aSqlSugarClient
misalnya, dan meneruskan konfigurasi koneksi database yang sesuai saat membuatnya.
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, | |
// 其他配置... | |
}); |
Sekarang Anda dapat menggunakan iniSqlSugarClient
contoh untuk melakukan operasi database. Sesuai dengan kebutuhan bisnis Anda, pilih instance yang sesuai untuk mengoperasikan database yang sesuai.
csharp复制代码
// 使用SqlServer数据库实例插入数据 | |
var user = new User { Name = "张三", Age = 20 }; | |
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity(); | |
// 使用MySql数据库实例查询数据 | |
var userList = dbClientMySql.Queryable<User>().ToList(); |
System.Transactions
Kelas di namespace untuk mengelola transaksi terdistribusi. Namun, waspadai kinerja dan kompleksitas transaksi terdistribusi.Menggunakan SqlSugar untuk operasi multi-database terutama melibatkan konfigurasi beberapa koneksi database dan pembuatan beberapa koneksiSqlSugarClient
Instance, dan pilih instance yang sesuai untuk melakukan operasi database berdasarkan kebutuhan bisnis. Perlu dicatat bahwa kueri lintas database dan pemrosesan transaksi terdistribusi mungkin memerlukan pertimbangan dan konfigurasi tambahan. Selain itu, perhatian harus diberikan pada kinerja dan beban setiap database untuk memastikan stabilitas dan kinerja sistem.
Terlampir kode aplikasi SqlSugar:
menggunakan SqlSugar;
//Buat objek database (penggunaannya sama dengan EF Dapppper untuk memastikan keamanan thread melalui yang baru)
SqlSugarClient Db = new SqlSugarClient(Konfigurasi Koneksi baru()
{
ConnectionString = "sumber data=demo.db",
TipeDb = TipeDb.Sqlite,
IsAutoCloseConnection = benar
},
basis data => {
db.Aop.OnLogExecuting = (sql, pars) =>
{
//Dapatkan rekomendasi SQL asli 5.1.4.63, kinerjanya oke
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
//Mendapatkan SQL bebas parameter berdampak pada kinerja. Terutama SQL berukuran besar dengan banyak parameter harus digunakan untuk debugging.
//Konsol.WriteLine(MetodeUtil.GetSqlString(TipeDb.SqlServer,sql,pars))
};
//Perhatikan bahwa multi-tenancy memiliki beberapa pengaturan.
//db.Dapatkan Koneksi(i).Aop
});
//Membangun basis data
Db.DbMaintenance.CreateDatabase(); // Dameng dan Oracle tidak mendukung pembuatan database
//Buat tabel (lihat migrasi dokumen)
Db.CodeFirst.InitTables<Student> (); //Semua perpustakaan mendukung
// Kueri semua tabel
var daftar = Db.Queryable<Student> ().ToList();
//menyisipkan
Db.Insertable(Siswa baru() { Id Sekolah = 1, Nama = "jack" }).ExecuteCommand();
//memperbarui
Db.Updateable(Siswa baru() { Id = 1, Id Sekolah = 2, Nama = "jack2" }).ExecuteCommand();
//menghapus
Db.Dapat Dihapus<Student> ().Where(itu => itu.Id == 1).ExecuteCommand();
Console.WriteLine("Selamat memulai, Anda hanya perlu memeriksa dokumentasinya nanti.");
Konsol.ReadKey();
//Entitas mempunyai struktur yang sama dengan database
kelas umum Siswa
{
//Data bertambah sendiri dan perlu ditambahkan dengan IsIdentity
//Basis data adalah kunci utama dan perlu ditambahkan dengan IsPrimaryKey
//Catatan: Dua atribut harus benar-benar konsisten dengan database
[SugarColumn(IsPrimaryKey = benar, IsIdentity = benar)]
publik int Id { dapatkan; atur; }
publik int? SchoolId { dapatkan; tetapkan; }
string publik? Nama { dapatkan; tetapkan; }
}