Dapper et DAL Où dois-je placer ma validation

dapper data-access-layer

Question

J'ai commencé avec mon premier projet Dapper Dal.

J'ai trois projets: - Site Web (MVC) - DataLayer (Dapper) - Modèle (Classes Poco)

Je veux ajouter de la validation à mon modèle mais je veux aussi utiliser des classes poco propres pour mon datalayer. Mon datalayer utilise dapper pour mapper mes classes poco à la base de données.

J'ai cherché sur internet mais je ne trouve pas de bonne réponse.

Ma question est la suivante: où puis-je ajouter ma validation? - Dans un projet séparé avec des classes qui prolongent mes cours de poco ou existe-t-il une autre façon?

Réponse acceptée

Si vous souhaitez une séparation nette entre vos classes DAL et vos classes MVC, vous pouvez le faire en utilisant, par exemple, ViewModels dans votre projet MVC. ViewModel aura les propriétés et les validations les mieux adaptées à ce que vous présentez dans le navigateur. Votre contrôleur serait chargé de mapper les données entre les classes DAL et les ViewModels. Automapper est un très bon outil pour cela.

Cela ressemblerait un peu à ce qui suit:

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

Manette:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi