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 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误