果园 CMS 中的"check in memory"是什么意思?



我试图自定义 Orchard.ContentManagement.DefaultContentManager执行的查询,但以下代码 *1使我的努力变得毫无用处:

class DefaultContentManager 
{
  ...
  public virtual ContentItem Get(int id, VersionOptions options, QueryHints hints) {
        ...
        // implemention of the query comes here
        ...
  *1 -> // no record means content item is not in db
        if (versionRecord == null) {
            // check in memory
            var record = _contentItemRepository.Get(id);
            if (record == null) {
                return null;
            }
            versionRecord = GetVersionRecord(options, record);
            if (versionRecord == null) {
                return null;
            }
        }

该查询是正确执行的,并且不会返回任何数据(这是我的目标),但后来执行第二次尝试*1仍获取内容项。

为什么那里的代码部分?它的目的是什么?另外,为什么要查询评论状态check in memory,然后查询存储库(db表)。

在这一点上已经验证了该项目在数据库中不存在,但是在同一请求期间,它可能只是从代码创建的。在这种情况下,NHIBERNATE会话具有该项目,但是数据库还没有。存储库访问了会话,而不是直接登录DB,因此,如果它在那里,它将检索它,但这会在内存中发生。

相关内容

最新更新