C# 在数据库中插入一对多关系.net core 3.1

C# 在数据库中插入一对多关系.net core 3.1,c#,asp.net,entity-framework,api,dbcontext,C#,Asp.net,Entity Framework,Api,Dbcontext,我有一个表竞赛和子竞赛的一对多关系。一个种族可以有多个子种族,但一个子种族只能有一个种族。 我上过以下课程 public class Race { public int ID { get; set; } [Required] public string RaceName { get; set; } [Required] [StringLength(200)] public string

我有一个表竞赛和子竞赛的一对多关系。一个种族可以有多个子种族,但一个子种族只能有一个种族。 我上过以下课程

 public class Race
    {
        public int ID { get; set; }

        [Required]
        public string RaceName { get; set; }

        [Required]
        [StringLength(200)]
        public string RaceFeatures { get; set; }


        [JsonIgnore]
        public IList<SubRace> SubRaces { get; set; }


然而,我不知道如何初始化此表中的值。这就是我正在尝试做的,但是我在尝试运行时遇到以下错误

System.NullReferenceException:“对象引用未设置为对象的实例。”

API.Model.Race.SubRaces.get返回null


我做错了什么?我似乎无法理解。

您缺少子种族初始化

var rc0 = new Race()
            {
                RaceName = "Elf",
                RaceFeatures = "Darkvision. +2 Charisma",
                SubRaces = new List<SubRace>()
            };
var rc0=new Race()
{
RaceName=“Elf”,
RaceFeatures=“Darkvision.+2魅力”,
子种族=新列表()
};
您可能希望将“默认Elf”也设为子种族,并避免将任何内容写入主种族。如果每个子种族都必须覆盖主种族的值,那么很快就会变成一团被遗忘的混乱。“种族”表仅存在于早期UI选择中,以允许您在角色创建期间显示适当的子种族选项。
if (!context.Races.Any())
            {
                var rc0 = new Race()
                {
                    RaceName = "Elf",
                    RaceFeatures = "Darkvision. +2 Charisma",
                  
                };
                var sr1 = new SubRace()
                {
                    Race = rc0,
                    SubRaceName = "Wood",
                    SubraceFeatures = "+1 Wisdom",

                };
                rc0.SubRaces.Add(sr1);
                context.Races.Add(rc0);
                context.SaveChanges();
            }
var rc0 = new Race()
            {
                RaceName = "Elf",
                RaceFeatures = "Darkvision. +2 Charisma",
                SubRaces = new List<SubRace>()
            };