Cześć.
Mam akcję kontrolera, która odpowiedzialna jest za przekazanie view modelu klasy Product do serwisu. W serwisie metodę, która operuje na ORM i dodaje encje do dbcontext.
public virtual ActionResult Create(ProductViewModel viewModel)
{
if (ModelState.IsValid)
{
productService.AddProduct(viewModel);
return RedirectToAction(MVC.Products.ActionNames.List);
}
return View(viewModel);
}
public void AddProduct(ProductViewModel viewModel)
{
var product = Mapper.Map<Product>(viewModel);
context.Products.Add(product);
context.SaveChanges();
}
Chciałbym uzyskać id zapisanego do bazy obiektu, aby móc przekierować użytkownika do innej akcji kontrolera z wykorzystaniem zapisanego obiektu. W internecie natknął się na rozwiązania, które działają na takie zasadzie, że zapis do bazy następuje bezpośrednio w kontrolerze, dzięki czemu jest dostęp do obiektu z uzyskanym id. Natomiast nie bardzo wiem, jak rozegrać to w sytuacji, kiedy zapisuję obiekt w serwisie.
Rozwiązanie, które mi się nasuwa, to od razu zwracanie view modelu przez metodę serwisu zapisującą obiekt do bazy, w zależności od przekazanego parametru? Ale nie sądzę, aby to było w porządku.