【问题标题】:How to get User creation date in Orchard?如何在 Orchard 中获取用户创建日期?
【发布时间】:2014-08-15 09:13:20
【问题描述】:

我正在尝试从我的 Orchard 项目中提取 Created UTC 值,但我不断收到“object is null”

这是我的代码

IUser loggedOnUser = _orchardServices.WorkContext.CurrentUser;
var userCreatedDate = loggedOnUser.As<CommonPart>().CreatedUtc;

当它到达第二行时,它会抛出“对象引用未设置为对象的实例”的异常。

看看这个link 我的代码应该可以正常工作。

【问题讨论】:

  • loggedOnUser 是空的吗?还是.As&lt;CommonPart&gt; 失败了?
  • loggedOnUser 很好,但似乎 .As 会抛出异常
  • 是否附上了 CommonPart?
  • 它似乎没有,但我能做的是更新迁移并创建一个新的迁移来代替它来存储它

标签: c# asp.net-mvc orchardcms orchardcms-1.7


【解决方案1】:

User 内容项仅包含 UserPart。如果您需要访问创建/修改的日期,则需要通过数据迁移将CommonPart 附加到它,如下所示:

    public int Create() {
        ContentDefinitionManager.AlterTypeDefinition("User", cfg => cfg.WithPart("CommonPart));

        return 1;
    }

请记住,它不会自动影响现有用户 - 您必须逐个浏览它们并点击“保存”以创建要创建的部分。

【讨论】:

  • 是的,我做到了,我运行了一个查询来更新所有空创建日期:),为帮助喝彩
  • @Piotr Szmyd,上面的行是否经过测试?我记得有一个循环引用问题。
  • @MrGenius 是的,我也记得,但我认为它已经修复了。
猜你喜欢
  • 2016-05-06
  • 1970-01-01
  • 2020-10-22
  • 2020-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-20
相关资源
最近更新 更多