// handle manipulations
        public Result<List<Mon_ett>> select_all_mon()
        {
            Result<List<Mon_ett>> rs = new Result<List<Mon_ett>>();
            try
            {
                List<Mon_ett> lst = new List<Mon_ett>();
                // remember : linq select all table "tbl_mon"
                var dt = db.tbl_mons;

                if (dt.Count() > 0)
                {
                    foreach (tbl_mon item in dt)
                    {
                        Mon_ett temp = new Mon_ett(item);
                        lst.Add(temp);
                    }
                    rs.data = lst;
                    rs.errorCode = ErrorCode.Sucess;

                }
                else
                {
                    rs.data = null;
                    rs.errorCode = ErrorCode.NaN;
                    rs.errorInfor = Constants.empty_data;
                }
                return rs;
            }
            catch (Exception ex)
            {
                rs.data = null;
                rs.errorInfor = ex.ToString();
                rs.errorCode = ErrorCode.False;
                return rs;
            }
        }
        public Result<List<Mon_ett>> select_by_fields(string nameInput, string how_to_search)
        {
            Result<List<Mon_ett>> rs = new Result<List<Mon_ett>>();
            try
            {
                IQueryable<tbl_mon> dt = null;
                List<Mon_ett> lst = new List<Mon_ett>();
                switch (how_to_search)
                {
                    case "mamon":
                        dt = db.tbl_mons.Where(o => o.mamon.Contains(nameInput));
                        break;
                    case "tenmon":
                        dt = db.tbl_mons.Where(o => o.tenmon.Contains(nameInput));
                        break;
                    default:
                        break;
                }

                if (dt.Count() > 0)
                {
                    foreach (tbl_mon item in dt)
                    {
                        Mon_ett temp = new Mon_ett(item);
                        lst.Add(temp);
                    }
                    rs.errorCode = ErrorCode.Sucess;
                    rs.data = lst;
                }
                else
                {
                    rs.errorCode = ErrorCode.NaN;
                    rs.data = null;
                }
                return rs;
            }
            catch (Exception e)
            {
                rs.data = null;
                rs.errorCode = ErrorCode.False;
                rs.errorInfor = e.ToString();
                return rs;
            }
        }
        public Result<bool> insert_mon(Mon_ett mon)
        {
            Result<bool> rs = new Result<bool>();
            try
            {
                // create new tbl_khoa to insert to datacontext
                tbl_mon temp = new tbl_mon();
                temp.mamon = mon.mamon;
                temp.tenmon = mon.tenmon;

                // remember : linq insert data
                db.tbl_mons.InsertOnSubmit(temp);
                // remember : all manipulations such as insert, update, delete have to use this command
                db.SubmitChanges();

                rs.data = true;
                rs.errorCode = ErrorCode.Sucess;
                return rs;
            }
            catch (Exception e)
            {
                rs.data = false;
                rs.errorCode = ErrorCode.False;
                rs.errorInfor = e.ToString();
                return rs;
            }
        }