我试图搜索所有社区用户,以获取没有自定义属性集的人员列表。
使用查询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);
}
提前感谢任何有帮助的人......
答案 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}}