C# 不区分大小写的QueryExpression
是否可以使用不区分大小写的ConditionExpression构建查询C# 不区分大小写的QueryExpression,c#,dynamics-crm,dynamics-crm-2011,case-insensitive,query-expressions,C#,Dynamics Crm,Dynamics Crm 2011,Case Insensitive,Query Expressions,是否可以使用不区分大小写的ConditionExpression构建查询 ConditionExpression condition = new ConditionExpression() { AttributeName = "lastname", Operator = ConditionOperator.BeginsWith, Values = new ObservableCollection<object>() { searchName } }; Cond
ConditionExpression condition = new ConditionExpression()
{
AttributeName = "lastname",
Operator = ConditionOperator.BeginsWith,
Values = new ObservableCollection<object>() { searchName }
};
ConditionExpression condition=newconditionexpression()
{
AttributeName=“lastname”,
Operator=ConditionOperator.BeginsWith,
Values=newobserveCollection(){searchName}
};
在本例中,我希望使用searchName的搜索不区分大小写。我认为这是安装CRM期间选择的数据库排序规则的一个因素,而不是QueryExpression的一个功能 清洁安装过程中的默认值为
Latin1\u General\u CI\u AS
。您可以通过执行以下sql语句来检查您的sql语句:
SELECT DATABASEPROPERTYEX('OrganisationName_MSCRM', 'Collation')
你可以在以下网址找到正确答案: 要在MSCRM 2011中进行不区分大小写的搜索,我们需要稍微调整查询,例如
if (!String.IsNullOrEmpty(fieldname))
query.Criteria.AddCondition("fieldname".ToLower(), ConditionOperator.Equal, fieldname.ToLower());
EntityCollection col = service.RetrieveMultiple(query);
在这里,我将模式名设置为
ToLower()
,这实际上起到了作用,希望这有帮助。请留下您的评论 澄清一下——如果我们假设您当前的搜索区分大小写,那么要实现不区分大小写的搜索,您需要将数据库排序规则更改为使用不区分大小写的排序规则。虽然这不仅仅是单击按钮的情况,但这是可能的,而且您应该能够随时用谷歌搜索它。对于从搜索引擎来到这里的任何人来说,这都不起作用。“fieldname”。ToLower()
只返回“fieldname”
。当比较它们时,您可能认为它会强制执行ToLower()
数据库端?这是行不通的。