//数据持久化 internal static void SaveToDb(ContractInfo pContractInfo, Contract pContract,bool pIsNew) { pContract.ContractId = pContractInfo.contractId; pContract.ContractFileId = pContractInfo.contractFileId; pContract.SignName = pContractInfo.signName; pContract.ContractNum = pContractInfo.contractNum; pContract.ContractName = pContractInfo.contractName; pContract.BeginDate = pContractInfo.beginDate; pContract.MoneySum = pContractInfo.moneySum; pContract.IsNew=pIsNew; string UserName = SubsonicHelper.GetUserName(); try { pContract.Save(UserName); } catch(Exception ex) { LogManager.getInstance().getLogger(typeof(ContractInfo)).Error(ex); if(ex.Message.Contains("插入重复键"))//违反了唯一键 { throw new AppException("此对象已经存在");//此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示 } throw new AppException("保存失败"); } pContractInfo.contractId = pContract.ContractId; //如果缓存存在,更新缓存 if (CachedEntityCommander.IsTypeRegistered(typeof(ContractInfo))) { ResetCache(); } }