如何在Timer回调中注入IContentManager(Orchard CMS)

时间:2015-08-19 16:12:48

标签: timer orchardcms

public Models.ManagedUsersPart GetManagedUsers(int ManagedUsersId)
    {

        return _cacheManager.Get(ManagedUsersId, ctx =>
        {
            MonitorManagedUserSignal(ctx, ManagedUsersId);
            Timer = new Timer(t => DoUpdate(_contentManager,ManagedUsersId), "c", TimeSpan.FromMinutes(2), TimeSpan.FromMilliseconds(-1));
            var managedusers = _contentManager.Get<ManagedUsersPart>(ManagedUsersId);
            return managedusers;
        });
    }

这是我的DoUpdate函数:

public void DoUpdate(IContentManager contentmanager,int ManagedUsersId)
        {
            var transation = _iworkcontext.CreateWorkContextScope().Resolve<ITransactionManager>();
            transation.RequireNew();
            var manager = getmanager();
            var modifiemanageruser = manager.Get<ManagedUsersPart>(ManagedUsersId);
            var modi = GetManagedUsers(ManagedUsersId);
            modifiemanageruser.InvitedCount = modi.InvitedCount;
}

并且,这是我的getmanager函数:

public IContentManager getmanager()
        {
            if (Timermanager == null)
            {
                Timermanager = _iworkcontext.CreateWorkContextScope().Resolve<IContentManager>();
            }
            return Timermanager;
        }

问题是&#34; modifiemanageruser.InvitedCount = modi.InvitedCount&#34; 这段代码不会持续更新到数据库,任何人都可以提供帮助吗?

0 个答案:

没有答案