Я хочу подробнее остановиться на следующем вопросе:
Как создать экземпляр DbContext в EF Core
Я выполнил вышеуказанное в своем контроллере, но ясейчас пытаюсь создать DataAccess.cs, где я хочу, чтобы все мои методы / запросы к базе данных происходили.Например, у меня пока есть следующее:
Контроллер:
public class HomeController : Controller
{
DataAccess da = new DataAccess() { };
private readonly DatabaseContext db;
public HomeController(DatabaseContext reg)
{
db = reg;
}
[HttpPost, ValidateAntiForgeryToken]
public IActionResult Register(User model)
{
model.WindowsAuth = User.Identity.Name;
if (ModelState.IsValid)
{
da.Registration(model, db);
return RedirectToAction("Index");
}
In DataAccess.cs
public class DataAccess
{
public void Registration(User model, DatabaseContext db)
{
User newUser = new User();
db.Users.Add(model);
db.SaveChanges();
}
}
Контекст базы данных
public class DatabaseContext :DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options)
: base(options)
{
}
public DbSet<User> Users { get; set; }
}
Выше работает, но я хочу добавить больше методов в DataAccess.cs.Нужно ли будет передавать мою базу данных в качестве параметра от контроллера каждый раз?Переменная db становится нулевой, когда я пытаюсь создать экземпляр класса контекста в своем классе доступа к данным.Я новичок в MVC, поэтому любые дальнейшие чтения или источники, связанные с этим, будут оценены.