- php 캐쉬제거
- 하드 마이그레이션
- 바코드 생성하기
- XSS PHP
- django 엑셀불러오기
- 하드 윈도우 복사
- jquery 바코드
- 맥 오라클설치
- asp.net core Select
- ViewBag
- 파일업로드 유효성체크
- 강제이동
- asp.net Select
- asp.net dropdownlist
- jquery 바코드생성
- javascript 바코드스캔
- TempData
- javascript redirection
- ViewData
- XSS방어
- 파일업로드 체크
- javascript 유효성체크
- Mac Oracle
- 말줄임표시
- SSD 복사
- javascript 바코드 생성
- 404에러페이지
- 바코드 스캔하기
- 타임피커
- ASP.Net Core 404
웹개발자의 기지개
[C#] .NET Core - Entity Framework Core 1 본문
[C#] .NET Core - Entity Framework Core 1
http://portfolio.wonpaper.net 2020. 12. 19. 13:57Entity Framework 를 활용해보자.
먼저 NuGet 으로 Entity Framework 관련 패키지를 설치해둔다.
아래의 그림과 같이 Employee.cs 와 MyDbContext.cs 클래스 파일을 준비한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace EntitiyFramworkCoreExam1.Models
{
[Table("Employee")]
public class Employee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public DateTime DOB { get; set; }
public decimal Salary { get; set; }
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
namespace EntitiyFramworkCoreExam1.Models
{
public class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Data Source=(local);Initial Catalog=MyDB2;Integrated Security=SSPI");
}
public DbSet<Employee> Employees { get; set; }
// 여러개의 다른 테이블들을 추가로 지정할 수 있다.
}
}
|
cs |
MyDbContext 클래스내에 MyDB2 라는 DB 명으로 DB 연결시키는 관련 항목을 볼수 있다.
클래스파일을 준비해뒀으니, 이번에는 관련 DB를 자동생성 시켜주는 DB 마이그레이션 작업을 진행한다.
패키지 관리자 콘솔을 열고,
PM> Add-Migration mig1
그러면 마이그레이션 관련 소스가 생성된다.
패키지 관리자 콘솔에서
PM> Update-Database
자동으로 관련 DB 와 테이블을 생성시켜준다.
일단 Employee 에 데이터를 임의로 넣어서 프로젝트를 실행시켜보고 실제 테이블내에 데이터가 잘 삽입되어 있는지 확인해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
using EntitiyFramworkCoreExam1.Models;
using System;
namespace EntitiyFramworkCoreExam1
{
class Program
{
static void Main(string[] args)
{
MyDbContext db = new MyDbContext();
Employee emp = new Employee
{
Name = "Tom",
DOB = new DateTime(2020,10,22),
Salary = 50000
};
db.Employees.Add(emp);
Employee emp2 = new Employee
{
Name = "Jane",
DOB = new DateTime(2020, 11, 5),
Salary = 30000
};
db.Employees.Add(emp2);
// db에저장
db.SaveChanges();
}
}
}
|
cs |
그렇다면, Employee 테이블에 Address string 을 추후 더 추가한다고 한다면,
Employee 클래스에 Address 속성을 추가해준다.
그런다음, 새로운 마이그레이션을 추가해주고, 다시 Update하여 해당 DB에 적용시켜준다.
패키지 관리자 콘솔에서
PM> Add-Migration mig2
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
PM> Update-database mig2
Build started...
Build succeeded.
Applying migration '20201219061832_mig2'.
Done.
위의 소스중에 MyDbContext 클래스내에 직접 Db 연결관련해서 하드코딩하지 않고, appsettings.json 파일을 따로 만들어서 그안에 DB 연결자를 넣어 작업할 수도 있다.
csharp.tips/tip/article/998-EF-Core-3-Use-appsettings-json-instead-of-hardcoded-connection-string
참고 : www.youtube.com/watch?v=ZyEYL-tKqyU
참고 : docs.microsoft.com/ko-kr/ef/core/managing-schemas/migrations/?tabs=vs
'ASP.NET > C#' 카테고리의 다른 글
[C#] Guid 전역 고유한 키값 생성하기 (0) | 2022.11.18 |
---|---|
[C#] .NET Core - Entity Framework Core 2 (Talk, TalkComment with FK 예제) (0) | 2022.10.22 |
[C#] string.IsNullOrEmpty 와 string.IsNullOrWhiteSpace (0) | 2020.10.10 |
델리게이트 Delegate 연습2 (이벤트) (0) | 2019.11.16 |
델리게이트 Delegate 연습1 (이벤트) (0) | 2019.11.16 |