EF Core conversão de valores

Felipe Castro
2 min readJan 15, 2021

Há alguns dias atrás eu comecei uma nova aplicação para estudos, no caso estou estudando o .Net 5 no decorrer do desenvolvimento criei uma struct Cpf essa struct é responsável por representar um tipo de dado nesse caso um cpf.

Struct Cpf

Então resolvi usar ela dentro de uma entidade que continha um valor cpf só que como string, então substitui o tipo string por um tipo cpf e show, mas como nem tudo são flores tive um problema com o EF Core ele não sabia o que fazer com o meu tipo Cpf então me retornava um grande erro quando eu tentava gerar uma migrations. Pensando no fato que alguém já havia tentado fazer isso sabemos que tem uma solução para esse proble e o EF Core tem e é em forma de método e se chama .HasConversion(), esse método tem algumas sobrecargas mas vou mostrar o jeito que eu usei no curso “Dominando o Entity Framework Core” o “Rafael Almeida” mostra as outras formas de usar.

Configure.

Logo acima temos a fórmula mágica, eu criei uma instancia da classe ValuConverter informei para ela o tipo que eu quero converter e para que tipo converter ValuConverter<Cpf, string> e dentro do construtor essa classe espera duas expressões de o que fazer quando o dado for escrito no banco de dados, e quando ele for lido ValueConverter<Cpf, string>(expressaoEscrtia, expressaoLeitura); dessa forma quando gerei a minha migration tudo correu bem.

Prova do crime

Esse foi o meu resultado, espero que esse texto possa te ajudar obrigado.

--

--