[英]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.