public IQueryable<PageRemarkViewModel> Read() {
            List<PageRemarkViewModel> ret = new List<PageRemarkViewModel>();
            var qry = db.PageRemark.Where(x=>x.isOpen != "F");
            foreach (PageRemark o in qry)
            {
                PageRemarkViewModel v = new PageRemarkViewModel();

                v.ID = o.ID;
                //v.Content = o.Content;
                if (o.ModifyUserID != null)
                    v.ModifyUserName = o.UserData.UserName;
                v.PageCName = o.PageCName;
                v.PageName = o.PageName;
                v.ModifyDT = o.ModifyDateTime;
                if(o.ModifyDateTime!=null)
                    v.ModifyDTStr = o.ModifyDateTime.Value.ToString("yyyy/MM/dd");
                v.isOpen = o.isOpen;
                v.ModifyUserID = o.ModifyUserID;
                v.OrderSeq = o.OrderSeq.Value;
                v.HasActtachment = "";

                if (db.PageFiles.Where(x => x.PageID == o.ID).Count() > 0)
                    v.HasActtachment = "@";
                ret.Add(v);
            }
            return ret.AsQueryable();
        }
        public bool Update(PageRemarkViewModel pageRemarkViewModel)
        {
            bool ret = false;
            try
            {
                PageRemark pageRemark = db.PageRemark.Find(pageRemarkViewModel.ID);

                pageRemark.Content = pageRemarkViewModel.Content;
                pageRemark.ModifyUserID = pageRemarkViewModel.ModifyUserID;
                pageRemark.ModifyDateTime = DateTime.Now;

                db.SaveChanges();
                ret = true;
            }
            catch (DbUpdateConcurrencyException ex)
            {
                // Update the values of the entity that failed to save from the store
                ex.Entries.Single().Reload();
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                         .SelectMany(x => x.ValidationErrors)
                         .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
            return ret;

        }
        public PageRemarkViewModel Read(int ID)
        {
            PageRemarkViewModel v = new PageRemarkViewModel();

            var qry = db.PageRemark.Where(x => x.ID == ID);

            foreach (PageRemark o in qry)
            {
                v.ID = o.ID;
                v.Content = o.Content;
                if (o.ModifyUserID != null)
                    v.ModifyUserName = o.UserData.UserName;
                v.PageCName = o.PageCName;
                v.PageName = o.PageName;
                v.ModifyDT = o.ModifyDateTime;
                if (o.ModifyDateTime != null)
                    v.ModifyDTStr = o.ModifyDateTime.Value.ToString("yyyy/MM/dd");
                v.isOpen = o.isOpen;
                v.ModifyUserID = o.ModifyUserID;
                v.OrderSeq = o.OrderSeq.Value;
            }
            return v;
        }