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>()
};