ASP.NETにおける分散トランザクションの使用
最近、プロジェクトをしているときに分布式の事務に出会って、すべてをまとめて、みんなと経験を分かち合って交流します.まず、分散トランザクションの理由を説明します.まず私がプロジェクトのどこで分布式の事務に出会ったことを話しましょう、私はウェブサイトのバックグラウンドの開発をする時、普通はピクチャーの表の設計があることに関連して、データベースはピクチャーの経路を保存して、ピクチャーはウェブサイトのフォルダの下に保存して、だから私達は製品の表を操作する時、私がデータベースの製品のピクチャーの経路を削除する時、同時にウェブサイトのディレクトリの下に存在するピクチャーも削除して、この機能を実現するために、分散トランザクションを使用しました.
考え方:
1.プロジェクトではSystemを参照する必要がある.Transactionsプログラムセット
2、取引管理を行うコード方法:System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope()
3、分散トランザクションを正常に実行するには、サービスDistributed Transaction Coordinatorを起動する必要があります.
次に、私が書いた主なコードの例を示します.
説明:データベースを操作する方法は、データベース・データを取り出してエンティティ・オブジェクトに変換し、エンティティ・オブジェクトを操作してデータベースを操作します.
考え方:
1.プロジェクトではSystemを参照する必要がある.Transactionsプログラムセット
2、取引管理を行うコード方法:System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope()
3、分散トランザクションを正常に実行するには、サービスDistributed Transaction Coordinatorを起動する必要があります.
次に、私が書いた主なコードの例を示します.
// id
// id
ProductEntity entity = Product_BLLSub.Get_ProductEntity(int.Parse(id));
//
using (System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope())
{
//
Product_BLLSub.Create_ProductDelete(int.Parse(id));
//
string thumphyPath = context.Server.MapPath("/upload/thum/") + entity.img_url;
string imgPhyPath = context.Server.MapPath("/upload/img/") + entity.img_url;
//
if (System.IO.File.Exists(thumphyPath))
{
System.IO.File.Delete(thumphyPath);
}
//
if (System.IO.File.Exists(imgPhyPath))
{
System.IO.File.Delete(imgPhyPath);
}
//
scop.Complete();
}
//
Response.Write(" ");
説明:データベースを操作する方法は、データベース・データを取り出してエンティティ・オブジェクトに変換し、エンティティ・オブジェクトを操作してデータベースを操作します.