Żadnego manipulowania danymi w bazie danych z poziomu kontrolera! Jeżeli mówi Ci coś ZPO (zasada pojedynczej odpowiedzialności) to zgodnie z nią kontroler powinien tylko reagować na żądania użytkownika. Jak zapisywać do bazy? Na stronach wprowadzających do tematu można zobaczyć takie przykłady:
public class MyPage : SomeBaseType
{
// obiekt odpowiedzialny za kontakt z bazą danych
private readonly MyDatabaseContext _context;
public CreateModel(MyDatabaseContext context)
{
_context = context;
}
public IActionResult OnGet()
{
return Page();
}
public async Task<IActionResult> OnPostAsync(MyModel model)
{
// Tutaj dodajeesz dane do bazy danych
_context.MyModels.Add(model);
return RedirectToPage("./Index");
}
}
Uważaj, powyższy kod jest mocno uproszczony!
Jeszcze jedna rzecz: Microsoft zaleca aby odchodzić od projektów które nazywa MVC na rzecz RazorPages, jednak założenia (rozdział na widok-kontroler-model) pozostają takie same.
Polecam oficjalny poradnik na stronie Microsoftu dotyczący ASP.NET Core MVC: https://docs.microsoft.com/pl-pl/aspnet/core/tutorials/first-mvc-app/?view=aspnetcore-2.2. Według mnie świetnie opisuje zagadnienia związane z tym wzorcem projektowym i odpowie na twoje pytanie: co zrobić z dostępem do bazy. Jeśli język angielski to dla Ciebie problem, to mogę spróbować przetłumaczyć ten tutorial (wiadomo trochę to zajmie), ale tym więcej będę miał do tego chęci im więcej osób się zainteresuje :). A jakby chciał ktoś pomóc to może pisać na priv.