コード例 #1
0
        /// <summary>已重载。在事务保护范围内处理业务,位于Valid之后</summary>
        /// <returns></returns>
        protected override int OnUpdate()
        {
            Int32  result        = base.OnUpdate();
            String haveButtonIDs = "";

            if (MenuButtons != null && MenuButtons.Count > 0)
            {
                foreach (var item in MenuButtons)
                {
                    haveButtonIDs += item.ButtonID + ",";
                }
                //去除最后的逗号
                haveButtonIDs = haveButtonIDs.TrimEnd(',');
            }
            //如果不相等说明按钮被修改了
            if (haveButtonIDs != ButtonIDs)
            {
                //先删除后添加
                if (MenuButtons != null && MenuButtons.Count > 0)
                {
                    MenuButtons.Delete();
                }
                if (!String.IsNullOrEmpty(ButtonIDs))
                {
                    Int32[] ss = ButtonIDs.SplitAsInt(",");
                    if (ss != null && ss.Length > 0)
                    {
                        EntityList <MenuButton> list = new EntityList <MenuButton>();
                        foreach (Int32 buttonID in ss)
                        {
                            var m = new MenuButton();
                            m.ButtonID = buttonID;
                            m.MenuID   = ID;
                            list.Add(m);
                        }
                        list.Insert(true);
                    }
                }
                //如果只是更改了按钮菜单根不会重新设置,需要手动设置为null,否则扩展属性的缓存不会更新
                Menu.Root = null;
                //这里还需要清空菜单的缓存,否则从缓存中重新读取数据时扩展属性还是旧的
                Menu.Meta.Cache.Clear(String.Format("菜单{0}更新了菜单按钮", Name));
                //Menu.Meta.Cache.Entities.Clear();
                //MenuButton.Meta.Cache.Entities.Clear();
                //Menu.Meta.Cache.Clear(String.Format("菜单{0}更新了菜单按钮",Name));
            }
            return(result);
        }
コード例 #2
0
        ///// <summary>已重载。基类先调用Valid(true)验证数据,然后在事务保护内调用OnInsert</summary>
        ///// <returns></returns>
        //public override Int32 Insert()
        //{
        //    Int32 result = base.Insert();
        //    if (!String.IsNullOrEmpty(ButtonIDs))
        //    {
        //        Int32[] ss = ButtonIDs.SplitAsInt(",");
        //        if (ss != null && ss.Length > 0)
        //        {
        //            EntityList<MenuButton> list = new EntityList<MenuButton>();
        //            foreach (Int32 buttonID in ss)
        //            {
        //                MenuButton m = new MenuButton();
        //                m.MenuID = ID;
        //                m.ButtonID = buttonID;
        //                list.Add(m);
        //            }
        //            throw new Exception("插入异常!");
        //            list.Insert(true);
        //        }
        //    }
        //    return result;
        //}

        /// <summary>已重载。在事务保护范围内处理业务,位于Valid之后</summary>
        /// <returns></returns>
        protected override Int32 OnInsert()
        {
            Int32 result = base.OnInsert();

            if (!String.IsNullOrEmpty(ButtonIDs))
            {
                Int32[] ss = ButtonIDs.SplitAsInt(",");
                if (ss != null && ss.Length > 0)
                {
                    EntityList <MenuButton> list = new EntityList <MenuButton>();
                    foreach (Int32 buttonID in ss)
                    {
                        MenuButton m = new MenuButton();
                        m.MenuID   = ID;
                        m.ButtonID = buttonID;
                        list.Add(m);
                    }
                    list.Insert(true);
                }
            }
            return(result);
        }