/// <summary> /// 用于监测Context中的Entity是否存在,如果存在,将其Detach,防止出现问题。 /// </summary> /// <param name="entity"></param> /// <returns></returns> private Boolean RemoveHoldingEntityInContext(PtaEgTruck entity) { var objContext = ((IObjectContextAdapter)_GateContext).ObjectContext; var objSet = objContext.CreateObjectSet <PtaEgTruck>(); var entityKey = objContext.CreateEntityKey(objSet.EntitySet.Name, entity); Object foundEntity; var exists = objContext.TryGetObjectByKey(entityKey, out foundEntity); if (exists) { objContext.Detach(foundEntity); } return(exists); }
/// <summary> /// 保存一条PTA\EG车辆信息 /// </summary> /// <param name="goods"></param> /// <returns></returns> public IHttpActionResult SavePtaEgTruck(PtaEgTruck ptaEgTruck) { try { Console.WriteLine("SavePtaEgTruck:" + DateTime.Now.ToString()); string voucherId = string.IsNullOrEmpty(ptaEgTruck.VoucherID) ? "" : ptaEgTruck.VoucherID; var _PtaEgTruck = _GateContext.PtaEgTrucks.Find(voucherId); string result = string.Empty; if (_PtaEgTruck != null) { ptaEgTruck.Stamp = DateTime.Now; // RemoveHoldingEntityInContext(ptaEgTruck); // _GateContext.Entry(ptaEgTruck).State = EntityState.Modified; } else { if (string.IsNullOrEmpty(ptaEgTruck.Status)) { ptaEgTruck.Status = ""; } string vouIdNew = GetPtaEgTruckVoucherIDFlow(); ptaEgTruck.VoucherID = vouIdNew; ptaEgTruck.Stamp = DateTime.Now; _GateContext.PtaEgTrucks.Add(ptaEgTruck); } _GateContext.SaveChanges(); return(Ok(ptaEgTruck)); } catch (Exception e) { Loger.Error(e); Console.WriteLine(e); return(BadRequest(e.Message + e.StackTrace)); } }