Orchard后台任务没有将PartRecords保存到数据库中

时间:2015-07-14 23:44:43

标签: orchardcms background-task

我正在尝试使用后台任务从Facebook Graph APi收集喜欢/评论,并用它来推动我们博客的趋势。

此处trendingModels已填充,并用于填写TrendingParts.GraphIdTrendingParts.TrendingValue

我没有收到任何例外,TrendingPart上的属性指向TrendingPartRecord中的字段。

然而,数据库中没有任何内容,任何想法为什么?

_orchardsServicesIOrchardServices

var articleParts = _orchardService.ContentManager.GetMany<TrendingPart>(
                                                            trendingModels.Select(r => r.OrchardId).ToList(), 
                                                            VersionOptions.Published,
                                                            QueryHints.Empty);

        // Cycle through the records and update them from the matching model
        foreach (var articlePart in articleParts) 
        {
            ArticleTrendingModel trendingModel = trendingModels.Where(r => r.OrchardId == articlePart.Id).FirstOrDefault();

            if(trendingModel != null)
            {
                // Not persisting to the database, WHY?
                // What's missing?
                // If I'm understanding things properly nHibernate should push this to the db autoMagically.
                articlePart.GraphId = trendingModel.GraphId;
                articlePart.TrendingValue = trendingModel.TrendingValue;
            }
        }

编辑: 值得注意的是,我可以在管理面板中的TrendingPart上更新和发布字段,但保存的更改不会显示在MyModule_TrendingPartRecord表中。

1 个答案:

答案 0 :(得分:0)

解决方案是使用ITransientDependency将我的服务更改为暂时依赖。

该服务持有对PartRecords数组的引用,因为它被视为Singleton,它从未处理过,并且从未进行过对数据库的推送。