Pernah menemukan error No applicable method 'ToLower' exists in type 'Int' atau tipe data lainnya saat menggukan filter operator StartsWith, EndsWith, Contains dan NotContains.
Untuk solution project yang sudah menggunakan template web v3 dapat mengganti file-file berikut ini:
- Business/Extension/TypeExtension.cs
- Business/Infrastructure/QueryBuilder.cs
File-file di atas dapat diambil dari http://rekadia.net:81/rekadian/rekadia.template.web.git
Untuk solution project yang masih menggunakan template v2 dan sebelumnya, dapat mengubah file Business/Infrastructure/ QueryHelper.cs menjadi seperti berikut ini.
Code sebelum diubah:
//....
//....
case FilterOperator.StartsWith:
parameters.Add(filter.Value.ToString());
return $"{field}.StartsWith(@{paramIndex})";
case FilterOperator.EndsWith:
parameters.Add(filter.Value.ToString());
return $"{field}.EndsWith(@{paramIndex})";
case FilterOperator.Contains:
parameters.Add(filter.Value.ToString());
return $"{field}.ToLower().Contains(@{paramIndex})";
case FilterOperator.NotContains:
parameters.Add(filter.Value.ToString());
return $"!{field}.Contains(@{paramIndex})";
//....
//....
Code sesudah diubah:
//....
//....
case FilterOperator.StartsWith:
parameters.Add(filter.Value.ToString());
return $"{field}.ToString().StartsWith(@{paramIndex})";
case FilterOperator.EndsWith:
parameters.Add(filter.Value.ToString());
return $"{field}.ToString().EndsWith(@{paramIndex})";
case FilterOperator.Contains:
parameters.Add(filter.Value.ToString());
return $"{field}.ToString().ToLower().Contains(@{paramIndex})";
case FilterOperator.NotContains:
parameters.Add(filter.Value.ToString());
return $"!{field}.ToString().Contains(@{paramIndex})";
//....
//....