[EFCore] 초기값 설정하기

2022. 9. 9. 17:41·공부/EFCore
728x90

 

초기값 설정에 크게 2가지 차이점이 있다. Entity class 자체의 초기값과 DB Table 차원의 초기값이다.

 

1️⃣ Auto-Property Initializer

public DateTime CreateDate { get; set; } = new DateTime(2020, 1, 1);

 

이는 Entity 차원의 초기값으로 SaveChanges로 DB에 적용하지 않는 이상 DB에는 적용되지 않는다.

 

2️⃣ Fluent API

builder.Entity<Item>()
    .Property("CreateDate")
    .HasDefaultValue(DateTime.Now);

 

DB Table DEFAULT를 적용하는 방식이다. DB에 적용된다.

 

3️⃣ SQL Froagment

builder.Entity<Item>()
    .Property("CreateDate")
    .HasDefaultValueSql("GETDATE()");

 

새로운 값이 추가되는 시점에 DB 쪽에서 실행된다. HasDefaultValueSql을 사용한다.

 

4️⃣ Value Generator

예시는 Player의 이름을 자동으로 생성하는 상황이다.

 

public class PlayerNameGenerator : ValueGenerator<string>
{
    public override bool GeneratesTemporaryValues => false;

    public override string Next(EntityEntry entry)
    {
        string name = $"Player_{DateTime.Now.ToString("yyyyMMdd")}";
        return name;
    }
}

 

이름을 생성해주는 함수를 만든다.

 

builder.Entity<Player>()
    .Property(p => p.Name)
    .HasValueGenerator((p, e) => new PlayerNameGenerator());

 

EF Core에서 실행된다. 일종의 Generator 규칙이다.

728x90

'공부 > EFCore' 카테고리의 다른 글

[EFCore] 다수의 Entity Class를 하나의 테이블에 매핑하기  (0) 2022.09.08
[EFCore] 상속 관계를 매핑해보자 : Table Per Hierarchy (THP) 만들기  (0) 2022.09.08
[EFCore] Entity와 DB, Table 연동하기  (0) 2022.09.07
[EFCore] Shadow Property와 Backing Field  (0) 2022.09.07
[EFCore] 다수의 Navigational Property가 같은 클래스를 참조하는 상황, 어떻게 대처할까  (0) 2022.09.07
'공부/EFCore' 카테고리의 다른 글
  • [EFCore] 다수의 Entity Class를 하나의 테이블에 매핑하기
  • [EFCore] 상속 관계를 매핑해보자 : Table Per Hierarchy (THP) 만들기
  • [EFCore] Entity와 DB, Table 연동하기
  • [EFCore] Shadow Property와 Backing Field
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    C언어
    코딩
    java
    네트워크
    백준
    EFCore
    Entityfamework
    자바
    Python
    디자인패턴
    unity
    EntityFramework
    C
    tcp
    HTML
    C#
    coding
    유니티
    라즈베리파이
    게임서버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[EFCore] 초기값 설정하기
상단으로

티스토리툴바