Proyecto Demo II #8
Replies: 2 comments
-
Con el PR #22 se agrega un proyecto en WebAPI .Net 5 con Entity Framerwork. Y se utiliza la libreria para el control de inputs: [HttpPost]
public ActionResult<Persona> CreatePersona(CreatePersonaDto createPersonaDto)
{
CUIT cuit;
if (!CUIT.TryParse(createPersonaDto.CUIT, out cuit))
return BadRequest("El CUIT ingresado no tiene un formato valido");
if(!cuit.IsValid())
return BadRequest("El CUIT ingresado no es valido");
var persona = _mapper.Map<Persona>(createPersonaDto);
_repository.CreatePersona(persona);
_repository.SaveChanges();
var personaDto = _mapper.Map<PersonaDto>(persona);
return CreatedAtRoute(nameof(GetPersonaById), new { Id=persona.ID }, personaDto);
} En está primera instancia se almacena la entidad que contiene el CUIT InMemmory y el CUIT como un objeto de valor con la siguiente configuración: public class PersonaEntityTypeConfiguration : IEntityTypeConfiguration<Persona>
{
public void Configure(EntityTypeBuilder<Persona> builder)
{
builder.OwnsOne(p => p.CUIT);
}
} Más adelante se avanzará sobre el almacenamiento en SQL |
Beta Was this translation helpful? Give feedback.
-
Con el PR #25 se configura el proyecto WebAPI con EFCore para SQL El Context de EFCore se configura con el siguiente código: public class PersonaEntityTypeConfigurationVarcharSQL : IEntityTypeConfiguration<Persona>
{
public void Configure(EntityTypeBuilder<Persona> builder)
{
builder.Property(p => p.CUIT)
.HasConversion(
c =>c.ToString(),
c => CUIT.Parse(c));
}
} Se puede crear una migración y actualizar la base de datos. dotnet ef migrations add Initial
dotnet ef database update Construirá una columna en la tabla de la entidad para el valor CUIT en string |
Beta Was this translation helpful? Give feedback.
-
¿Que proyecto podríamos sumar como prueba de uso de la librería?
Beta Was this translation helpful? Give feedback.
All reactions