private void LoadFromId(int mainBusinessExpId) { if (CachedEntityCommander.IsTypeRegistered(typeof(MainBusinessExpInfo))) { MainBusinessExpInfo mainBusinessExpInfo=Find(GetList(), mainBusinessExpId); if(mainBusinessExpInfo==null) throw new AppException("未能在缓存中找到相应的键值对象"); Copy(mainBusinessExpInfo, this); } else { MainBusinessExp mainBusinessExp=new MainBusinessExp( mainBusinessExpId); if(mainBusinessExp.IsNew) throw new AppException("尚未初始化"); LoadFromDAL(this, mainBusinessExp); } }
//从后台获取数据 internal static void LoadFromDAL(MainBusinessExpInfo pMainBusinessExpInfo, MainBusinessExp pMainBusinessExp) { pMainBusinessExpInfo.mainBusinessExpId = pMainBusinessExp.MainBusinessExpId; pMainBusinessExpInfo.mainBusinessExpName = pMainBusinessExp.MainBusinessExpName; pMainBusinessExpInfo.Loaded=true; }
//数据持久化 internal static void SaveToDb(MainBusinessExpInfo pMainBusinessExpInfo, MainBusinessExp pMainBusinessExp,bool pIsNew) { pMainBusinessExp.MainBusinessExpId = pMainBusinessExpInfo.mainBusinessExpId; pMainBusinessExp.MainBusinessExpName = pMainBusinessExpInfo.mainBusinessExpName; pMainBusinessExp.IsNew=pIsNew; string UserName = SubsonicHelper.GetUserName(); try { pMainBusinessExp.Save(UserName); } catch(Exception ex) { LogManager.getInstance().getLogger(typeof(MainBusinessExpInfo)).Error(ex); if(ex.Message.Contains("插入重复键"))//违反了唯一键 { throw new AppException("此对象已经存在");//此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示 } throw new AppException("保存失败"); } pMainBusinessExpInfo.mainBusinessExpId = pMainBusinessExp.MainBusinessExpId; //如果缓存存在,更新缓存 if (CachedEntityCommander.IsTypeRegistered(typeof(MainBusinessExpInfo))) { ResetCache(); } }
/// <summary> /// 保存 /// </summary> public override void Save() { if(!m_Loaded)//新增 { MainBusinessExp mainBusinessExp=new MainBusinessExp(); SaveToDb(this, mainBusinessExp,true); } else//修改 { MainBusinessExp mainBusinessExp=new MainBusinessExp(mainBusinessExpId); if(mainBusinessExp.IsNew) throw new AppException("该数据已经不存在了"); SaveToDb(this, mainBusinessExp,false); } }