と通信するべきサービス層:MVC - どのように私は私のコントローラのアクションに次のパターンを使用しているコントローラ
public ActionResult Create(CreateViewModel model) {
if(!ModelState.IsValid) {
return View(model);
}
var project = new Project {
Name = model.Name,
// ...
};
projectRepository.Add(project);
return RedirectToAction("Index");
}
これは、単純なシナリオのために動作しますが、私はリポジトリ数の状況がありました十分ではありません。私は、プロジェクトや余分なビジネスロジックの保存(流暢な検証やデータアノテーションによる通常の検証ではない)を処理するサービスレイヤ/クラスを作成しました。
public class ProjectService : IProjectService {
void AddProject(Project project) {
// do business logic
// ...
repository.Add(project);
}
}
私のサービス層はコントローラと簡単に通信できますか?
これら
私は、コントローラと通信したいものの種類があります:- ビジネスロジック/検証エラー
- データベース障害
どのようにすることができます(などを保存することができませんでした)サービスレイヤからtrue/falseまたはステータスコードを返すだけで済みます。