AutoMapperを使い始めましたが、いくつか疑問が生じました。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;
}
}
それで、これは正しいですか?私のサービスはドメインについて知っている必要がありますか?または、リポジトリでのみバインドする必要がありますか?DTOで[必須]を使用するのは正しいですか?