Lucas Fernandes
Lucas Fernandes

Reputation: 21

How can I configure Entity Framework to automatically trim values?

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();
        }

Upvotes: 1

Views: 592

Answers (2)

Jose Alonso
Jose Alonso

Reputation: 9

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.

Upvotes: 0

Blindy
Blindy

Reputation: 67380

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).

Upvotes: 0

Related Questions