나는 AutoMapper를 사용하기 시작하고 일부 의구심이 생기기 시작했습니다. dto를 도메인 모델로 매핑하는 올바른 방법은 어디입니까? 나는이 일을 해요 :DTO를 도메인 모델에 바인딩 할 위치
DTO :
public class PersonInsert
{
[Required]
public string Name { get; set; }
public string LastName { get; set; }
}
작업 :
[HttpPost]
public ActionResult Insert(PersonInsert personInsert)
{
if (ModelState.IsValid)
{
new PersonService().Insert(personInsert);
return RedirectToAction("Insert");
}
return View("Insert");
}
서비스 :
public class PersonService
{
public int Insert(PersonInsert personInsert)
{
var person = Mapper.Map<PersonInsert, Person>(personInsert);
return new PersonRepository().Insert(person);
}
}
저장소 :
public class PersonRepository
{
internal int Insert(Person person)
{
_db.Person.Add(person);
_db.SaveChanges();
return person.Id;
}
}
,536,
그럼이게 맞습니까? 내 서비스가 도메인에 대해 알고 있어야합니까? 또는 저장소에 바인드 만 만들어야합니까? DTO에서 [Required]를 사용하는 것이 맞습니까?
[필수]에 대해 어떻게해야합니까? asp.net-mvc는 ModelState.IsValid를 사용하여 사용자 입력의 유효성을 검사합니다.이 문제를 피하고 serviceLayer에서 논리 유효성 검사를 생성해야합니까? – MuriloKunze
[필수] 주석을 어디에 넣으시겠습니까? Person 모델? –
@murilokunze 내 대답을 참조하십시오. – James