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