[EFCore] 초기값 설정하기
·
공부/EFCore
초기값 설정에 크게 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() .Property("CreateDate") .HasDefaultValue(DateTime.Now); DB Table DEFAULT를 적용하는 방식이다. DB에 적용된다. 3️⃣ SQL Froagment builder.Entity() .Propert..
[EFCore] 다수의 Navigational Property가 같은 클래스를 참조하는 상황, 어떻게 대처할까
·
공부/EFCore
public class Item { // ... // public Player Owner { get; set; } public Player Creator { get; set; } } 아이템을 생성한 Player와 아이템을 소유하고 있는 Player를 모두 나타내고 싶을 때는 어떤 방법을 사용해야 할까? 기존에 사용하던 Convention 방식을 사용하면 에러가 발생한다. (OwnerId와 CreatorId 두 개를 추가해주는 방식) ✅ 이때 우리가 사용할 수 있는 게 DataAnnotation 방식이다. public class Item { // ... // public int? OwnerId { get; set; } [InverseProperty("OwnedItem")] public Player Owne..