У меня есть отношение "один ко многим" таблиц Race и Subrace. В одной расе может быть несколько подрас, но в одной подрасе может быть только одна раса. Я создал следующие классы.
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; }
public class SubRace
{
public int Id { get; set; }
[Required]
[StringLength(50, ErrorMessage = "Only 50 characters allowed")]
public string SubRaceName { get; set; }
[Required]
[StringLength(400, ErrorMessage = "Only 400 characters allowed")]
public string SubraceFeatures { get; set; }
public int RaceID { get; set; }
public Race Race { get; set; }
}
Однако я не могу понять, как мне инициализировать значения в этой таблице. Это то, что я пытаюсь сделать, но при попытке запуска получаю следующую ошибку.
System.NullReferenceException: 'Ссылка на объект не установлена на экземпляр объекта.'
API.Model.Race.SubRaces.get вернул null.
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();
}
Что я здесь делаю не так? Кажется, я не могу понять.