我從第一個Dapper Dal項目開始。
我有三個項目: - 網站(MVC) - DataLayer(Dapper) - 模型(Poco類)
我想為我的模型添加驗證,但我也想為我的數據層使用乾淨的poco類。我的數據層使用dapper將我的poco類映射到數據庫。
我在互聯網上搜索但我找不到一個好的答案。
我的問題是:我在哪裡添加驗證? - 在一個包含擴展我的poco類的類的seppetated項目中,還是有不同的方式?
如果你想在DAL類和MVC類之間進行清晰的分離,那麼你可以通過例如在MVC項目中使用ViewModels來實現。 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);
}
}