我遇到需要使用实体框架交易的情况。在两次数据库保存之间,我正在拨打一次休息服务,该过程最多可能需要10秒钟。
我的问题:这是一个好习惯吗,数据库连接在事务期间(在两个SaveChanges
调用之间)是否一直保持打开状态?
有什么其他方法可以做到这一点?
using (var context = new BloggingContext())
{
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
// do your changes
context.SaveChanges();
//http call to service with timeout 10sec
using (var response = (HttpWebResponse)request.GetResponse())
{
}
// do another changes
context.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception ex)
{
//Log / handle
}
}
}