Dapper和DAL我必须在哪里进行验证

时间:2014-08-11 09:33:20

标签: data-access-layer dapper

我从第一个Dapper Dal项目开始。

我有三个项目: - 网站(MVC) - DataLayer(Dapper) - 模型(Poco Classes)

我想为我的模型添加验证,但我也想为我的数据层使用干净的poco类。我的数据层使用dapper将我的poco类映射到数据库。

我搜索了互联网,但我找不到合适的答案。

我的问题是: 我在哪里添加验证? - 在一个包含扩展我的poco类的类的seppetated项目中,还是有不同的方式?

1 个答案:

答案 0 :(得分:0)

如果你想在DAL类和MVC类之间进行清晰的分离,那么你可以通过使用MVC项目中的ViewModel来做到这一点。 ViewModel将具有最适合您在浏览器中呈现的属性和验证。您的控制器将负责在DAL类和ViewModel之间映射数据。 Automapper是一个非常好的工具。

看起来有点像:

DAL:

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

视图模型:

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

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

控制器:

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