[Table("Item")]
public class Item
{
public int ItemId { get; set; }
public int TemplateId { get; set; }
public DateTime CreateDate { get; set; }
[ForeignKey("OwnerId")]
public Player Owner { get; set; }
}
[Table("Player")]
public class Player
{
public int PlayerId { get; set; }
public string Name { get; set; }
public Item Item { get; set; }
}
위 DataModel에서 Item이 Player를 외래키로서 가리키고 있는 상태이다. 따라서 이런 entity를 주 entity라고 한다.
외래 키 속성을 포함하는 Entity이다. 관계에서 '자식'이라고도 한다.
아이템이 자신이 어느 플레이어한테 속해있는지에 대한 정보가 없이 존재할 수 있을까? (주인이 없는 아이템)
개발자 마음, 즉 정책을 어떻게 정하냐에 따라 달라지긴 하는데, 주인이 없는 아이템도 가능하도록 한다면 Nullable하게 정하면 된다.
즉 위 코드에서 Owner를 Nullable하게 설정하면 된다.
Player를 지우면 외래키로 해당 Player를 참조하는 Item도 같이 삭제된다.
item은 그대로 남고 null로 세팅이 된다.