私の連絡先情報
郵便メール:
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 Dappper と同じです)
SqlSugarClient Db = 新しい SqlSugarClient(新しい ConnectionConfig()
{
接続文字列 = "データソース=demo.db",
DbType = DbType.Sqlite、
IsAutoCloseConnection = true
},
デシベル => {
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(新しいStudent() { SchoolId = 1、名前 = "jack" }).ExecuteCommand();
//更新する
Db.Updateable(新しい Student() { Id = 1、SchoolId = 2、Name = "jack2" }).ExecuteCommand();
//消去
Db.削除可能<Student> ().Where(it => it.Id == 1).ExecuteCommand();
Console.WriteLine("開始おめでとうございます。後でドキュメントを確認する必要があります。");
コンソールのキーを読み取ります。
//エンティティはデータベースと同じ構造を持っています
パブリッククラス 学生
{
// データは自己増加するため、IsIdentity を使用して追加する必要があります
//データベースは主キーなので、IsPrimaryKey を使用して追加する必要があります
//注: 2 つの属性はデータベースと完全に一致している必要があります
[SugarColumn(IsPrimaryKey = true、IsIdentity = true)]
パブリック int Id { 取得; 設定; }
パブリック int? SchoolId { 取得; 設定; }
パブリック文字列?名前{取得;設定;}
}