public Models.Page GetDraft(Models.Page page) { var entity = _dbContext.PageDrafts .Where(it => it.SiteName == page.Site.FullName && it.FullName == page.FullName) .FirstOrDefault(); return(PageEntityHelper.ToPage(entity)); }
/// <summary> /// 为什么要缓存Page表呢? /// 1. 因为在实际使用过程中发现,如果页面数量相对比较多的时候,第一次查找页面的过程中会调用很多次ChildPages,导致请求的效率很低,时间花费很高。 /// 2. 目前的设计已经是假设页面数量不多的前提了。所以缓该表的数据量是可以接受的。 /// </summary> private List <PageEntity> GetCachedPageList() { var cacheObject = CacheManagerFactory.DefaultCacheManager.GlobalObjectCache(); return(cacheObject.GetCache <List <PageEntity> >(cacheKey, () => { return _dbContext.Pages.ToArray().Select(it => { it.PageObject = PageEntityHelper.ToPage(it); return it; }) .ToList(); })); }
public Models.Page Copy(Models.Site site, string sourcePageFullName, string newPageFullName) { var page = Get(new Page(site, sourcePageFullName)); var newPage = new Page(site, newPageFullName); var entity = PageEntityHelper.ToPageEntity <PageEntity>(page); entity.FullName = newPageFullName; if (newPage.Parent != null) { entity.ParentPage = newPage.Parent.FullName; } _dbContext.Pages.Add(entity); _dbContext.SaveChanges(); ClearCache(); return(PageEntityHelper.ToPage(entity)); }