不区分大小写的查询表达式

3

是否有可能使用不区分大小写的ConditionExpression构建查询?

ConditionExpression condition = new ConditionExpression() 
{ 
  AttributeName = "lastname", 
  Operator = ConditionOperator.BeginsWith, 
  Values = new ObservableCollection<object>() { searchName } 
};

在这个例子中,我希望使用searchName进行搜索时不区分大小写。
2个回答

6

我相信这是CRM安装期间选择的数据库排序规则而不是QueryExpression的特性。

在干净安装期间,默认值为Latin1_General_CI_AS。您可以通过执行以下SQL语句来检查您的:

SELECT DATABASEPROPERTYEX('OrganisationName_MSCRM', 'Collation')

澄清一下 - 如果我们假设您当前的搜索区分大小写,那么要实现不区分大小写的搜索,您需要更改数据库排序规则以使用不区分大小写的排序规则。虽然这不仅仅是点击一个按钮的问题,但这是可能的,您应该能够轻松地在谷歌上找到相关信息。 - Greg Owens

-6

您可以在http://crmonaroll.blogspot.in/2013/06/case-in-sensitive-search-in-mscrm-2011.html找到正确的答案。

要在MSCRM 2011中进行不区分大小写的搜索,我们需要稍微调整一下查询,例如:

 if (!String.IsNullOrEmpty(fieldname)) 
     query.Criteria.AddCondition("fieldname".ToLower(), ConditionOperator.Equal, fieldname.ToLower()); 
 EntityCollection col = service.RetrieveMultiple(query);

在这里,我将模式名称设置为 ToLower(),实际上就做到了这一点,希望这能帮助到您。请留下您的评论。

对于从搜索引擎来到这里的其他人,这个不起作用。 - glosrob
1
"fieldname".ToLower() 只是返回 "fieldname"。也许你认为它会在数据库端强制执行 ToLower() 并进行比较?但这并不起作用。 - Don Cheadle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接