Dapper와 DAL 어디에서 유효성 확인을해야합니까?

dapper data-access-layer

문제

나는 처음 Dapper Dal 프로젝트를 시작했다.

3 가지 프로젝트가 있습니다 : - 웹 사이트 (MVC) - DataLayer (Dapper) - 모델 (Poco Classes)

내 모델에 유효성 검사를 추가하고 싶지만 내 데이터 계층에 깨끗한 poco 클래스를 사용하고 싶습니다. 내 데이터 플레이어는 내 poco 클래스를 데이터베이스에 매핑하기 위해 dapper를 사용합니다.

나는 인터넷을 수색했으나 나는 좋은 대답을 찾을 수 없다.

내 질문은 : 유효성 검사를 어디에서 추가합니까? - 내 poco 클래스를 확장하거나 다른 방법이있는 클래스가있는 seppetated 프로젝트에서?

수락 된 답변

DAL 클래스와 MVC 클래스를 깨끗하게 분리하려면 MVC 프로젝트에서 ViewModels를 사용하는 등의 방법으로이를 수행 할 수 있습니다. ViewModel에는 브라우저에 표시되는 것과 가장 잘 맞는 속성 및 유효성 검사가 있습니다. 컨트롤러는 DAL 클래스와 ViewModel 사이의 데이터 매핑을 담당합니다. Automapper는 그저 좋은 도구입니다.

다음과 같이 보일 것입니다 :

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

제어 장치:

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow