Фоновая задача Orchard не сохраняет записи PartRecords в базе данных

Я пытаюсь использовать фоновую задачу для сбора лайков/комментариев из Facebook Graph APi и использовать это для управления тенденциями нашего блога.

Здесь trendingModels уже заполнены и используются для заполнения TrendingParts.GraphId и TrendingParts.TrendingValue.

Я не получаю никаких исключений, и свойства TrendingPart указывают на поля в TrendingPartRecord.

Тем не менее, ничего не сохраняется в базе данных, есть идеи, почему?

_orchardsServices is IOrchardServices

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.


person Brandon.Blanchard    schedule 14.07.2015    source источник


Ответы (1)


Решение состояло в том, чтобы изменить мою службу на временную зависимость, используя ITransientDependency.

Служба хранила ссылку на массив PartRecords, и, поскольку он рассматривался как синглтон, он никогда не удалялся, а отправка в базу данных никогда не производилась.

person Brandon.Blanchard    schedule 15.07.2015