Episerver空属性

时间:2014-04-04 15:12:27

标签: c# attributes episerver relate

我试图搜索所有社区用户,以获取没有自定义属性集的人员列表。

使用查询StringCriterion,有没有办法匹配null而不是值?

我已尝试过以下代码,但它不起作用。

    private static UserCollection GetAllUsersWithNoCode()
    {
        UserQuery query = new UserQuery();
        StringCriterion criterion = new StringCriterion();
        criterion.Value = null;
        query[AttributeNames.CommunityUser.AUTO_LOGIN_TOKEN] = criterion;
        return CommunitySystem.CurrentContext.DefaultSecurity.GetQueryResult(query);
    }

提前感谢任何有帮助的人......

2 个答案:

答案 0 :(得分:1)

刚从Episerver支持回复。他们声称无法以这种方式查询自定义属性。解决方案是使用空字符串手动向DB(对于所有用户)添加行,然后使用string.empty值来查找结果。

不是我希望的答案,但我稍后会测试并更新结果......

答案 1 :(得分:0)

我看到这已经解决但有一种方法可以检查空值。您可以使用类似的东西检查null,如果没有为特定对象创建属性,我不确定这是否可行: 考虑这个伪代码,我还没有测试过它是否会编译。

private static UserCollection GetAllUsersWithNoCode()
{
    UserQuery query = new UserQuery();
    query[AttributeNames.CommunityUser.AUTO_LOGIN_TOKEN] = new NullStringCriterion();
    return CommunitySystem.CurrentContext.DefaultSecurity.GetQueryResult(query);
}

然后:

{{1}}