コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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));
            }
        }