我開始使用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;
}
}
那麼,這是正確的嗎?我的服務應該知道域名嗎?或者我應該只在倉庫中進行綁定?在DTO中使用[Required]是否正確?
那麼我能做些什麼[必需的]? asp.net-mvc使用ModelState.IsValid來驗證用戶輸入..我應該避免這種情況,並在serviceLayer中創建一個邏輯驗證? – MuriloKunze
你會在哪裏放置[必填]註釋?在Person模型上? –
@murilokunze看到我更新的答案。 – James