问题
Is it possible to build a query with a ConditionExpression which is not case sensitive ?
ConditionExpression condition = new ConditionExpression()
{
AttributeName = "lastname",
Operator = ConditionOperator.BeginsWith,
Values = new ObservableCollection<object>() { searchName }
};
In this example I would like the search with searchName to be case insensitive.
回答1:
I believe that this is a factor of the database collation that was chosen during install of CRM rather than a feature of QueryExpression.
The default during a clean install is Latin1_General_CI_AS
. You can check yours by executing the following sql statement:
SELECT DATABASEPROPERTYEX('OrganisationName_MSCRM', 'Collation')
回答2:
you can find the correct answer at http://crmonaroll.blogspot.in/2013/06/case-in-sensitive-search-in-mscrm-2011.html
To do a case insensitive search in MSCRM 2011 we need to tweak the query a little bit ,for e.g.
if (!String.IsNullOrEmpty(fieldname))
query.Criteria.AddCondition("fieldname".ToLower(), ConditionOperator.Equal, fieldname.ToLower());
EntityCollection col = service.RetrieveMultiple(query);
Here I am setting the schema name to ToLower()
which actually does the trick, hope this help.Leave your comments.
来源:https://stackoverflow.com/questions/10985610/case-insensitive-queryexpression