내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
SqlSugar를 사용하여 다중 데이터베이스 작업을 수행하는 작업에는 주로 다음 단계가 포함됩니다.
먼저 프로젝트에서 구성 파일을 설정해야 합니다(예:appsettings.json
、web.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;", | |
// 可以继续添加更多数据库的连接字符串 | |
} | |
} |
작업해야 하는 각 데이터베이스에 대해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, | |
// 其他配置... | |
}); |
이제 이것들을 사용할 수 있습니다SqlSugarClient
데이터베이스 작업을 수행하는 인스턴스입니다. 귀하의 비즈니스 요구에 따라 해당 인스턴스를 선택하여 해당 데이터베이스를 운영하십시오.
csharp复制代码
// 使用SqlServer数据库实例插入数据 | |
var user = new User { Name = "张三", Age = 20 }; | |
var id = dbClientSqlServer.Insertable(user).ExecuteReturnIdentity(); | |
// 使用MySql数据库实例查询数据 | |
var userList = dbClientMySql.Queryable<User>().ToList(); |
System.Transactions
분산 트랜잭션을 관리하기 위한 네임스페이스의 클래스입니다. 그러나 분산 트랜잭션의 성능과 복잡성을 알고 있어야 합니다.다중 데이터베이스 작업에 SqlSugar를 사용하려면 주로 여러 데이터베이스 연결을 구성하고 여러 데이터베이스를 생성해야 합니다.SqlSugarClient
인스턴스를 선택하고 해당 인스턴스를 선택하여 비즈니스 요구에 따라 데이터베이스 작업을 수행합니다. 데이터베이스 간 쿼리 및 분산 트랜잭션 처리에는 추가 고려 사항 및 구성이 필요할 수 있다는 점에 유의해야 합니다. 또한, 시스템 안정성과 성능을 보장하기 위해서는 각 데이터베이스의 성능과 부하에도 주의를 기울여야 합니다.
첨부된 내용은 SqlSugar 애플리케이션 코드입니다.
SqlSugar를 사용하여;
//데이터베이스 객체 생성(new를 통해 스레드 안전성을 보장하기 위해 사용법은 EF Dapppper와 동일)
SqlSugarClient Db = 새 SqlSugarClient(새 ConnectionConfig()
{
ConnectionString = "데이터소스=demo.db",
DbType = DbType.Sqlite,
IsAutoCloseConnection = 참
},
디비 => {
db.Aop.OnLogExecuting = (sql, pars) =>
{
//네이티브 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 리스트 = Db.Queryable<Student> ().ToList();
//끼워 넣다
Db.Insertable(새 학생() { 학교 ID = 1, 이름 = "jack" }).ExecuteCommand();
//고쳐 쓰다
Db.Updateable(새 학생() { ID = 1, 학교 ID = 2, 이름 = "jack2" }).ExecuteCommand();
//삭제
Db.삭제 가능<Student> ().Where(it => it.Id == 1).ExecuteCommand();
Console.WriteLine("시작을 축하합니다. 나중에 문서를 확인하면 됩니다.");
콘솔.키 읽기();
//엔티티는 데이터베이스와 동일한 구조를 가집니다.
공개 수업 학생
{
//데이터가 자동으로 증가하므로 IsIdentity를 사용하여 추가해야 합니다.
//데이터베이스는 기본 키이므로 IsPrimaryKey를 사용하여 추가해야 합니다.
//참고: 두 속성은 데이터베이스와 완전히 일치해야 합니다.
[SugarColumn(기본 키 = 참, ID = 참)]
공개 int Id { get; set; }
public int? SchoolId { get; set; }
public string? 이름 { get; set; }
}