public bool SaveChange(SysMember entity) { var snapshot = GetById(entity.ID); var rlt = _baseQueryRepository.Context.Ado.UseTran(() => { var userTemp = new sys_member(); userTemp.Mapp(entity); var success = _baseQueryRepository.Context.Updateable(userTemp) .Where(it => it.ID == entity.ID) .ExecuteCommand();//主表 snapshot.Roles.Where(r => !entity.Roles.Exists(rr => rr.ID == r.ID)).ToList().ForEach(r => { _baseQueryRepository.Context.Ado.ExecuteCommand("delete from sys_member_roles_link where mid=@mid and rid=@rid;" , new { mid = entity.ID, rid = r.ID }); }); entity.Roles.Where(r => !snapshot.Roles.Exists(rr => rr.ID == r.ID)).ToList().ForEach(r => { var smrlink = new sys_member_roles_link() { ID = IdWorker.NextId(), mid = entity.ID, rid = r.ID }; _baseQueryRepository.Context.Insertable(smrlink).ExecuteCommand(); }); }); return(true); }
/// <summary> /// 保存用户角色 /// </summary> /// <returns></returns> public ActionResult SaveSurRoles(Dictionary <string, string> input, sys_member profile) { sys_member usr = profile; if (usr != null) { List <sys_roles> frl = JsonConvert.DeserializeObject <List <sys_roles> >(input["inputData"]); sys_member_roles_link mrl = new sys_member_roles_link(); _db.Deleteable <sys_member_roles_link>().Where(l => l.mid == Convert.ToInt32(input["uid"])).ExecuteCommand(); foreach (sys_roles r in frl) { mrl = new sys_member_roles_link(); mrl.mid = Convert.ToInt32(input["uid"]); mrl.rid = Convert.ToInt32(r.ID); _db.Insertable(mrl).ExecuteCommand(); } } return(new ActionResult(true)); }