Если у меня есть контроллер, который получает и обрабатывает действие, выбранное пользователем, а затем хочет использовать другой контроллер для хранения всей логики, связанной с базой данных, как правильно подключить эти контроллеры, одновременно позволяя второму контроллеру взаимодействовать сконтекст базы данных.
В данный момент у меня есть работа с созданием контекста базы данных в первом контроллере и последующим синтаксическим анализом его с контроллером базы данных, когда я соединяю два с помощью DI, но, надеюсь, кто-то может показать мне правильный способ сделать это.
public class TestController : Controller
{
private readonly DatabaseContext context;
private Database.UserController userDatabaseController;
public TestController(DatabaseContext db)
{
context = db;
userDatabaseController = new Database.UserController(context);
}
}
контроллер базы данных
public class UserController : Controller
{
private readonly DatabaseContext context;
public UserController(DatabaseContext ctx)
{
context = ctx;
}
public bool RegisterUser(Models.DatabaseModels.UserModel model)
{
try
{
context.Users.Add(model);
context.SaveChanges();
return true;
}
catch (Exception e)
{
return false;
}
}
}
startup.cs
services.AddDbContext<DatabaseContext>
(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
databasecontext
public class DatabaseContext : DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options)
: base(options)
{ }
public DbSet<DatabaseModels.UserModel> Users { get; set; }
}