//更新申请,含明细
        public ActionResult Update(string json)
        {
            var rdto = new ResultMessages();
            rdto.Message = "";
            JavaScriptSerializer jss = new JavaScriptSerializer();
            ReqVehicleMains obj = jss.Deserialize<ReqVehicleMains>(json);
            obj.ReqDate = DateTime.Now;
            try
            {
                ReqVehicleMains oriObj = ctx.ReqVehicleMains.Single(r => r.FormNo ==obj.FormNo);
                oriObj.ReqDate = obj.ReqDate;
                oriObj.Vehicle = obj.Vehicle;
                oriObj.Riders = obj.Riders;
                oriObj.RiderCnt = obj.RiderCnt;
                oriObj.PreStartTime = obj.PreStartTime;
                oriObj.PreEndTime = obj.PreEndTime;
                oriObj.Cause = obj.Cause;
                oriObj.StatusId = obj.StatusId;
                foreach(var v in obj.ReqVehicleSubs)
                {
                    ReqVehicleSubs reqSub = null;
                    if(v.Id>0)
                    {
                        reqSub = oriObj.ReqVehicleSubs.Single(r => r.Id == v.Id);
                    }
                    else
                    {
                        reqSub = new ReqVehicleSubs();
                        reqSub.FormNo = oriObj.FormNo;
                        oriObj.ReqVehicleSubs.Add(reqSub);
                    }
                    reqSub.FromSite = v.FromSite;
                    reqSub.ToSite = v.ToSite;
                    reqSub.PreDistance = v.PreDistance;
                    reqSub.PreTimespan = v.PreTimespan;
                    reqSub.Cause = v.Cause;
                    reqSub.OrderNo = v.OrderNo;
                }
                //更新时删除之前的签核数据
                var list = from r in ctx.SignFlows where r.FormNo == obj.FormNo select r;
                ctx.SignFlows.DeleteAllOnSubmit(list);

                ctx.SubmitChanges();
                rdto.Message = "更新成功";
                rdto.Result = true;
            }
            catch (Exception ex)
            {
                rdto.Message = "更新失败";
                rdto.Result = false;
            }
            if (obj.StatusId == 1)//写签核流程
            {
                try
                {
                    FlowSet fs = new FlowSet();
                    EmpBasicInfo ebi = Session["ebi"] as EmpBasicInfo;
                    fs.SetSignFlow(obj.FormNo, ebi);
                    rdto.Message = "更新且提交成功";
                }
                catch (Exception ex)
                {
                    rdto.Message = "表单已保存,但提交签核失败";
                    rdto.Result = false;
                }
            }
            return Json(rdto);
        }
 partial void DeleteReqVehicleSubs(ReqVehicleSubs instance);
 partial void InsertReqVehicleSubs(ReqVehicleSubs instance);
 partial void UpdateReqVehicleSubs(ReqVehicleSubs instance);
		private void detach_ReqVehicleSubs(ReqVehicleSubs entity)
		{
			this.SendPropertyChanging();
			entity.ReqVehicleMains = null;
		}