Bugs filter operator StartsWith, EndsWith, Contains dan NotContains pada tipe data selain string

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})";
//....
//....

Topaz Moderato has written 14 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>