C# Dapper - Dapper でトランザクションを使用する方法

Dapper はマイクロ ORM または単純なオブジェクト マッパーであり、C# およびその SqlConnection とスムーズに統合されます。 Dapper は SqlConnection トランザクションを拡張するため、Dapper とトランザクションにも同じことが当てはまります。以下は、Dapper.Contrib を使用して 2 つの挿入でトランザクションを実行する例です:

using var con = new SqlConnection("<Your connectionstring>");
con.Open();
using var transaction = con.BeginTransaction();

var result = con.Insert<MyEntity>(new MyEntity { 
   Text = "This is a text!"}, transaction);
var result2 = con.Insert<MyEntity>(new MyEntity { 
   Text = "This is another text!" }, transaction);
transaction.Commit();

上記では、最初に新しい SqlConnection を作成して開きます。次に、SQL 接続でトランザクションを開始し、これを SQL ステートメントに提供します。これは 2 つの挿入です。完了したら、トランザクションをコミットします。それだけです。

2 つの挿入の間に例外を挿入することで、上記をテストできます。

using var con = new SqlConnection("<Your connectionstring>");
con.Open();
using var transaction = con.BeginTransaction();
var result = con.Insert<MyEntity>(new MyEntity { 
   Text = "This is a text!"}, transaction);
throw new Exception(); //Here
var result2 = con.Insert<MyEntity>(new MyEntity { 
   Text = "This is another text!" }, transaction);
transaction.Commit();

上記では、例外がスローされ、トランザクションがコミットされないため、何も挿入されません。上記のトランザクションがなければ、最初の挿入が挿入され、2 番目の挿入は挿入されません。

それだけです

これがお役に立てば幸いです。下にコメントを残してください。すべて読みました!