Dapper y DAL ¿Dónde debo colocar mi validación?

dapper data-access-layer

Pregunta

Empecé con mi primer proyecto Dapper Dal.

Tengo tres proyectos: - Sitio web (MVC) - DataLayer (Dapper) - Modelo (Poco Classes)

Quiero agregar validación a mi modelo, pero también quiero usar las clases clean poco para mi capa de datos. Mi capa de datos usa dapper para mapear mis clases poco a la base de datos.

He buscado en Internet pero no puedo encontrar una buena respuesta.

Mi pregunta es: ¿Dónde agrego mi validación? - En un proyecto separado con clases que extienden mis clases poco o hay alguna otra forma?

Respuesta aceptada

Si desea una separación clara entre sus clases DAL y sus clases MVC, puede hacerlo simplemente, por ejemplo, usando ViewModels en su proyecto MVC. ViewModel tendría las propiedades y validaciones que funciona mejor con lo que está presentando en el navegador. Su controlador sería responsable de mapear los datos entre las clases DAL y ViewModels. Automapper es una muy buena herramienta para eso.

Se vería un poco como el siguiente:

DAL:

public class MyDapperClass
{
    public int Id { get; set; }
    public string SomeProperty { get; set; }
}

ViewModel:

public class MyViewModelClass
{
    public int Id { get; set; }

    [StringLength(50),Required]
    public string SomeProperty { get; set; }
}

Controlador:

// using AutoMapper;
public class MyController : Controller
{
    public MyController()
    {
        // Set up AutoMapper to be able to map your class
        Mapper.CreateMap<MyDapperClass, MyViewModelClass>();
    }

    public ActionResult MyAction()
    {
        var dalObject = DAL.GetObject();
        var viewModel = Mapper.Map<MyViewModelClass>(dalObject);

        return View(viewModel);
    }
}


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué