objectContext SaveChanges メソッド (EntityFramework 5) の同じトランザクションを使用して StoredProc を呼び出す方法を誰かが知っていますか?
目標は、オブジェクトの変更を適用し、DB で何らかの「魔法」を行うストアド Proc を呼び出すことですが、(SaveChanges または SP の実行で) 何か問題が発生した場合、変更はまったくコミットされません。
objectContext SaveChanges メソッド (EntityFramework 5) の同じトランザクションを使用して StoredProc を呼び出す方法を誰かが知っていますか?
目標は、オブジェクトの変更を適用し、DB で何らかの「魔法」を行うストアド Proc を呼び出すことですが、(SaveChanges または SP の実行で) 何か問題が発生した場合、変更はまったくコミットされません。
手順:
いくつかのコード (MyContext は DbContext から派生しています):
using (var ctx = new MyContext())
{
using (var trx = new TransactionScope())
{
var connection = ((IObjectContextAdapter)ctx).ObjectContext.Connection;
try
{
ctx.Entities.Add(new MyEntity() { Number = 123 });
ctx.SaveChanges();
ctx.Database.ExecuteSqlCommand("INSERT INTO MyEntities VALUES(300)");
trx.Complete();
}
finally
{
connection.Close();
}
}
}