1

我也在Our Umbraco 社区网站上问过以下问题,但到目前为止我还没有运气。

我有一项任务,我需要为媒体图像文件手动添加数据库记录,该文件将出现在我们客户的 Umbraco 站点中。

我的 SQL 包括:

  • 在 umbracoNode 中为图像添加一条记录。
  • 在 cmsContent 中添加记录
  • 在 cmsContentXml 中添加记录
  • 为图像的 umbracoFile、umbracoWidth、umbracoHeight、umbracoBytes、umbracoExtension 添加记录到 cmsPropertyData

执行上述操作并登录 Umbraco 后,我可以在 Media 区域看到图像,一切正常。

问题是当我想显示该图像时调用 @Model.MediaById() (在 Razor 文件中) - 由于未设置 img 'src' 属性,因此基本上没有显示图像。

我已经浏览了 Umbraco 代码并发现了问题。基本上,当代码使用 Lucene 搜索媒体 (ExaminedBackendMedia.GetUmbracoMedia()) 时,它确实找到了图像文件,但是 SearchResult 缺少许多字段。例如,添加到 cmsPropertyData 的“umbraco*”属性都不会出现在字段集合中。当我单步执行另一张图像的代码(手动添加的)时,我可以在字段集合中看到额外的 5 个左右的属性 - 包括所有“umbraco*”属性。

所以我可以看到我在这里缺少数据。基本上 SearchResult 对象缺少一些字段。有人可以建议我可能错过的吗?为什么 Lucene 没有选择我通过 SQL 脚本添加的“umbraco*”属性?

4

1 回答 1

1

您需要确保重新发布节点,这将从您创建的数据库条目中获取它们,并将它们放入 umbraco 在提供数据时实际使用的 XML 缓存中。

于 2012-10-03T14:30:10.383 回答