私は、C#でEntity Frameworkを使用してトランザクションを使用してデータを保存するシナリオを考え出しました。コミットされていない間、テーブルはロックされます。私は以下のコードを使ってデータを保存しています。トランザクションがEntity Frameworkでコミットされていない間にテーブルがロックされますか?
tblCharge obj = new tblCharge();
obj.Plan = "DD";
obj.TotalAmount = 1500;
// Opening transaction
using (System.Data.Common.DbTransaction transaction((IObjectContextAdapter)dbContext).ObjectContext.Connection.BeginTransaction())
{
dbContext.tblCharges.Add(obj);
dbContext.SaveChanges();
transaction.Commit();
}
コミット前にデータを保存していて、SQL Serverのテーブルから選択クエリを実行すると、トランザクションがコミットされるまで結果が表示されません。
トランザクションの使用中にテーブルロックが発生しない方法はありますか?
**テーブルロックではありません - 挿入している行のみがロックされています。残りのテーブルはまだ選択可能です。問題ありません。このロック動作は**目的**のためであり、正当な理由のために - それを回避しようとしないでください! –
あなたの助けてくれてありがとう –