From 4ba185790d6551216f77cca23befcf2f67a404ce Mon Sep 17 00:00:00 2001 From: syneffort Date: Fri, 19 May 2023 17:15:16 +0900 Subject: [PATCH] database context dependency injection --- .../Controllers/UserController.cs | 18 +++++++++++------- .../DataContext/ModelDbContext.cs | 5 ++--- AspNetFrameworkMVC/AspNetCoreMVC/Program.cs | 6 ++++++ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs index 5d69a2c..8294c0a 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs @@ -8,19 +8,24 @@ namespace AspNetCoreMVC.Controllers [Route("api/user")] // 컨트롤러 전체 라우터 설정 public class UserController : Controller { + private ModelDbContext _db; + + public UserController(ModelDbContext db) + { + _db = db; + } + [HttpGet("{id}")] public JsonResult GetUser(int id) { - var db = new ModelDbContext(); - var user = db.Users.SingleOrDefault(u => u.Id == id); + var user = _db.Users.SingleOrDefault(u => u.Id == id); return Json(user); } [HttpGet("v2/{id}")] public IActionResult GetUser2(int id) { - var db = new ModelDbContext(); - var user = db.Users.SingleOrDefault(u => u.Id == id); + var user = _db.Users.SingleOrDefault(u => u.Id == id); if (user == null) return BadRequest("No data found"); @@ -32,12 +37,11 @@ namespace AspNetCoreMVC.Controllers { try { - var db = new ModelDbContext(); - if (!ModelState.IsValid) return Json(false); - db.Users.Add(user); + _db.Users.Add(user); + _db.SaveChanges(); return Json(true); } catch (Exception ex) diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs b/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs index e04d091..f76e170 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs @@ -9,10 +9,9 @@ namespace AspNetCoreMVC.DataContext public DbSet Persons { get; set; } public DbSet Users { get; set; } - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + public ModelDbContext(DbContextOptions option) : base(option) { - string connectionString = "server=peacecloud.synology.me,21433;database=study;uid=study;pwd=Study1234"; - optionsBuilder.UseSqlServer(connectionString); + } } } diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Program.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Program.cs index e7ba844..dbf5840 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/Program.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Program.cs @@ -1,3 +1,6 @@ +using AspNetCoreMVC.DataContext; +using Microsoft.EntityFrameworkCore; + namespace AspNetCoreMVC { public class Program @@ -9,6 +12,9 @@ namespace AspNetCoreMVC // Add services to the container. builder.Services.AddControllersWithViews(); + // service registration + builder.Services.AddDbContext(option => option.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); + var app = builder.Build(); // Configure the HTTP request pipeline.