【问题标题】:Case insensitive QueryExpression不区分大小写的查询表达式
【发布时间】:2012-06-14 16:23:39
【问题描述】:

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

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

在本例中,我希望使用 searchName 的搜索不区分大小写。

【问题讨论】:

    标签: c# dynamics-crm dynamics-crm-2011 case-insensitive query-expressions


    【解决方案1】:

    您可以在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(),这实际上可以解决问题,希望对您有所帮助。留下您的 cmets。

    【讨论】:

    • 对于从搜索引擎来到这里的其他人来说,这不起作用。
    • "fieldname".ToLower() 只返回"fieldname"。也许您认为在比较它们时会强制执行ToLower() 数据库端?这不起作用。
    【解决方案2】:

    我认为这是安装 CRM 期间选择的数据库排序规则的一个因素,而不是 QueryExpression 的一个功能。

    全新安装期间的默认值为Latin1_General_CI_AS。您可以通过执行以下 sql 语句来检查您的:

    SELECT DATABASEPROPERTYEX('OrganisationName_MSCRM', 'Collation')
    

    【讨论】:

    • 澄清一下 - 如果我们假设您当前的搜索区分大小写,那么要实现不区分大小写的搜索,您需要更改数据库排序规则以使用不区分大小写的排序规则。虽然不只是单击按钮的情况,这是可能的,您应该能够轻松地谷歌它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2021-07-05
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多