Fabrica para CRUD. AspNetCore y probando en visual para mac.

Sebastian Velez Zuluaga
2 min readJun 28, 2019

Continuando con armar una plantilla para proyectos de N capas con core, inyección de dependencias, versión de control y .NetCore, este es el git con el branch

https://github.com/sebastianvz/Core/tree/probandoApi

  1. Para poder usar dentro del servicio la navegación entre tablas (join), se implementa en el proyecto servicio dos carpetas una de inclusines y otra de fabrica.

2. La carpeta inclusión permite por medio de su Interfaz navegar las las relaciones de las tablas, es muy importante incluir todas las interfaces en el middleware.

3. La carpeta fabrica es un genérico de operaciones CRUD y de búsqueda de datos.

4. Ya para probar todo entonces, cree en el servicio usuario implemente todo el cruz, pero en este brach solo prueba el GetAll, muy importante también crear la firma del método en el interfaz del servicio.

5. Para navegar entre las tablas se debe hacer uno de la interfaz de inclusión, se debe hacer la debida inyección de dependencias y usar el siguiente código, recordar que cuando hacemos el mapeo de las tablas a clases se crean las relaciones, tener en cuenta esos nombre para navegar por ellas.

private readonly IInclusion _inclusion;

public userService(TestEFCoreContext contextApp, IInclusion _inclusion) : base(contextApp)
{
this._inclusion = _inclusion;
}

public List<userDTO> Get()
{
_inclusion.AddInclusion(nameof(User.person));
var items = Mapper.Map<List<User>, List<userDTO>>(GetAll(_inclusion.GetInclusions()).ToList());
_inclusion.ClearInclusions();
return items;
}

6. Para que el proyecto corriera hice unos cambios en el starup.cs.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

ConfigureSwagger(app, env);
Automapper.Configure(); <Cambio>

app.UseCors(“CorsPolicy”);
app.UseHttpsRedirection();
app.UseMvc();
}

Esta es una la clase que esta en el middleware y le puse este método.

public static void Configure()
{
Mapper.Initialize(config =>
{
//inversion de control
config.CreateMap<User, userDTO>().ReverseMap();
});
}

7. Probe que funcionara tanto en windows como en mac

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet