繁体   English   中英

Episerver空属性

[英]Episerver empty attribute

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

使用查询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);
    }

预先感谢任何可以提供帮助的人...

刚刚得到Episerver支持的回复。 他们指出不可能以这种方式查询自定义属性。 解决方案是使用空字符串手动向数据库(对于所有用户)添加行,然后使用string.empty值查找结果。

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

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

public class NullStringCriterion : StringCriterion
{
    public override string GetQuery(string propertyName)
    {
        return String.Format(" ({0} IS NULL) ", propertyName);
    }
}

接着:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM