diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs index 3df4cba..5d69a2c 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Controllers/UserController.cs @@ -1,4 +1,5 @@ -using AspNetCoreMVC.Models; +using AspNetCoreMVC.DataContext; +using AspNetCoreMVC.Models; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; @@ -7,62 +8,19 @@ namespace AspNetCoreMVC.Controllers [Route("api/user")] // 컨트롤러 전체 라우터 설정 public class UserController : Controller { - private static List _users; - - public UserController() : base() - { - if (_users != null) - return; - - _users = new List(); - _users.Add(new User - { - Id = 1, - Name = "James", - Phone = "123-4567-8910", - Address = "Somewhere over the rainbow1" - }); - _users.Add(new User - { - Id = 2, - Name = "Carl", - Phone = "223-4567-8910", - Address = "Somewhere over the rainbow2" - }); - _users.Add(new User - { - Id = 3, - Name = "Tyler", - Phone = "323-4567-8910", - Address = "Somewhere over the rainbow3" - }); - _users.Add(new User - { - Id = 4, - Name = "Jackson", - Phone = "423-4567-8910", - Address = "Somewhere over the rainbow4" - }); - _users.Add(new User - { - Id = 5, - Name = "Philip", - Phone = "523-4567-8910", - Address = "Somewhere over the rainbow5" - }); - } - [HttpGet("{id}")] public JsonResult GetUser(int id) { - var user = _users.SingleOrDefault(u => u.Id == id); + var db = new ModelDbContext(); + var user = db.Users.SingleOrDefault(u => u.Id == id); return Json(user); } [HttpGet("v2/{id}")] public IActionResult GetUser2(int id) { - var user = _users.SingleOrDefault(u => u.Id == id); + var db = new ModelDbContext(); + var user = db.Users.SingleOrDefault(u => u.Id == id); if (user == null) return BadRequest("No data found"); @@ -74,10 +32,12 @@ namespace AspNetCoreMVC.Controllers { try { + var db = new ModelDbContext(); + if (!ModelState.IsValid) return Json(false); - _users.Add(user); + db.Users.Add(user); return Json(true); } catch (Exception ex) diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs b/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs new file mode 100644 index 0000000..e04d091 --- /dev/null +++ b/AspNetFrameworkMVC/AspNetCoreMVC/DataContext/ModelDbContext.cs @@ -0,0 +1,18 @@ +using AspNetCoreMVC.Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace AspNetCoreMVC.DataContext +{ + public class ModelDbContext : DbContext + { + public DbSet Persons { get; set; } + public DbSet Users { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + string connectionString = "server=peacecloud.synology.me,21433;database=study;uid=study;pwd=Study1234"; + optionsBuilder.UseSqlServer(connectionString); + } + } +} diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.Designer.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.Designer.cs new file mode 100644 index 0000000..972134e --- /dev/null +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.Designer.cs @@ -0,0 +1,71 @@ +// +using AspNetCoreMVC.DataContext; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AspNetCoreMVC.Migrations +{ + [DbContext(typeof(ModelDbContext))] + [Migration("20230519075640_first-mig")] + partial class firstmig + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.16") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("AspNetCoreMVC.Models.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Person"); + }); + + modelBuilder.Entity("AspNetCoreMVC.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Address") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Phone") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("User"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.cs new file mode 100644 index 0000000..9777f5d --- /dev/null +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/20230519075640_first-mig.cs @@ -0,0 +1,49 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AspNetCoreMVC.Migrations +{ + public partial class firstmig : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Person", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Name = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Person", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "User", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), + Phone = table.Column(type: "nvarchar(max)", nullable: false), + Address = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_User", x => x.Id); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Person"); + + migrationBuilder.DropTable( + name: "User"); + } + } +} diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/ModelDbContextModelSnapshot.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/ModelDbContextModelSnapshot.cs new file mode 100644 index 0000000..e66e3cd --- /dev/null +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Migrations/ModelDbContextModelSnapshot.cs @@ -0,0 +1,69 @@ +// +using AspNetCoreMVC.DataContext; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AspNetCoreMVC.Migrations +{ + [DbContext(typeof(ModelDbContext))] + partial class ModelDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.16") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("AspNetCoreMVC.Models.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Person"); + }); + + modelBuilder.Entity("AspNetCoreMVC.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Address") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Phone") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("User"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Models/Person.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Models/Person.cs index 2c30b3b..de17448 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/Models/Person.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Models/Person.cs @@ -9,15 +9,4 @@ namespace AspNetCoreMVC.Models public int Id { get; set; } public string Name { get; set; } } - - public class PersonDbContext : DbContext - { - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - string connectionString = "server=peacecloud.synology.me,21433;database=study;uid=study;pwd=Study1234"; - optionsBuilder.UseSqlServer(connectionString); - } - - public DbSet Persons { get; set; } - } } diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/Models/User.cs b/AspNetFrameworkMVC/AspNetCoreMVC/Models/User.cs index 0d03dde..9e1eebf 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/Models/User.cs +++ b/AspNetFrameworkMVC/AspNetCoreMVC/Models/User.cs @@ -1,7 +1,9 @@ using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; namespace AspNetCoreMVC.Models { + [Table("User")] public class User { [Required] diff --git a/AspNetFrameworkMVC/AspNetCoreMVC/appsettings.json b/AspNetFrameworkMVC/AspNetCoreMVC/appsettings.json index 10f68b8..7423708 100644 --- a/AspNetFrameworkMVC/AspNetCoreMVC/appsettings.json +++ b/AspNetFrameworkMVC/AspNetCoreMVC/appsettings.json @@ -5,5 +5,8 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "ConnectionStrings": { + "DefaultConnection": "server=peacecloud.synology.me,21433;database=study;uid=study;pwd=Study1234" + } }