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