How can I configure Entity Framework to automatically trim values?

465 views Asked by At

I need to make “EF Core 2.1.0” remove white space from Strings fields in queries, “HasConversion” not is not working, can you tell me why?

entity.Property(e => e.Name)
             .HasConversion(
                new ValueConverter<string, string>(v => v.TrimEnd(), v => v.TrimEnd()));

-using DB2 database and .net core 2.1

Query:

public List<ItemServico> List()
        {
            return _uow._db.ItensServico.ToList();
        }
2

There are 2 answers

1
Blindy On

That's what the varchar type is for, to trim spaces automatically, and efficiently.

Manual trim() operations have to loop over the string every time to figure out the useful data, whereas varchar simply stores the useful length.

In general, you'll find that EF Core has moved to remove the more useless functions in an effort to implement the useful functions in as efficient as manner as possible. Especially later EF Core versions (you're 3 versions behind).

1
Jose Alonso On

If you use EF Core and want to avoid the whitespace issue, simply use the varchar(n) data type in SQL, in EF Core Char(n) types produce whitespace.