关于EF中使用事务的问题请教。

using (EFDbContext db = new EFDbContext())
{
Domain.Entities.Registration reg = db.Registrations.FirstOrDefault(c => c.PlateNo == txtPlateNo.Text && c.DataStatue == DataStatue.OK && c.BusinessState == BusinessState.One);
if (reg == null)
{
XtraMessageBox.Show("没有该车记录,请检查后重新输入!");
return;
}
using (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope())
{

                    ls.ChangeStatue(reg.PlateNo, MySortService.VehicleStatue.Loading, MySortService.VehicleStatue.Loaded);

                    reg.BusinessState = BusinessState.ZC;
                    db.SaveChanges();
                    if (Base.ShareData.IsMis)
                    {
                                               //此处调用一个WEB服务修改另外一个系统中的数据
                        misHelper.mAPI m = new misHelper.mAPI();
                        m.LoadedPlateNo(reg.ID, reg.PlateNo, reg.Person.Name, reg.Customer.ErpCode, reg.YLoad.ToString(), reg.Product.ERPCode);
                    }
                    try
                    {
                        tran.Complete();
                    }
                    catch (Exception ex)
                    {
                        Base.LogHelper.WriteLog(typeof(FrmMOut), "手动出厂时:" + ex.ToString());
                    }

                    //Repository.SaveRegistration(reg);
                    XtraMessageBox.Show("保存成功");
                }

            }

                            出现问题的时候是另外一个系统中数据修改成功也就是 m.LoadedPlateNo()方法内成功。,但是EF中db.SaveChanges();的数据却修改失败了。难道是我的事务使用不当?
查看全部
mshanwei
mshanwei
2016/06/15 12:57
  • 点赞
  • 收藏
  • 回答
    私信

1个回复