mshanwei 2016-06-15 12:57 采纳率: 0%
浏览 1687

关于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();的数据却修改失败了。难道是我的事务使用不当?
  • 写回答

1条回答 默认 最新

  • threenewbee 2016-06-15 15:46
    关注

    ef事务只能保持其数据上下文的数据的一致性,像你这样去调用web service肯定保证不了的。

    评论

报告相同问题?

悬赏问题

  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案