我也在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*”属性?