Reputation: 14540
I have a YogaSpaceEvent I'm creating, in it I have an entity called RegisteredStudents. When I create the YogaSpaceEvent I want to add a RegisteredStudent entity to it before I save it. But when I say
'newEvent.RegisteredStudents.Add(newStudent);
' I get an object reference not set to an instance of an object. Is there something I'm overlooking or do I have to add a event to the db for I can add a registered student to that newEvent row?
YogaSpaceEvent newEvent = new YogaSpaceEvent
{
EventDateTime = details.EventDate.AddHours(DateTime.Parse(displayedTime).Hour).AddMinutes(DateTime.Parse(displayedTime).Minute),
Time = details.StartTime,
Duration = details.Duration,
//blah blah blah
DateCreated = DateTime.Now,
DateUpdated = DateTime.Now
};
RegisteredStudent newStudent = new RegisteredStudent { StudentId = 12345 };
newEvent.RegisteredStudents.Add(newStudent);
yogaSpace.YogaSpaceEvents.Add(newEvent);
dbContext.SaveChanges();
Here are the two entities
public class YogaSpaceEvent
{
public YogaSpaceEvent() {}
[Key]
public int YogaSpaceEventId { get; set; }
[Index]
public int YogaSpaceRefId { get; set; }
[ForeignKey("YogaSpaceRefId")]
public virtual YogaSpace YogaSpace { get; set; }
[Required]
[Index]
public DateTime EventDateTime { get; set; }
[Required]
public YogaTime Time { get; set; }
[Required]
public YogaSpaceDuration Duration { get; set; }
public virtual ICollection<RegisteredStudent> RegisteredStudents { get; set; }
}
Here is RegisteredStudent
public class RegisteredStudent
{
public RegisteredStudent () {}
[Key]
public int RegisteredStudentsId { get; set; }
[Index]
public int YogaSpaceEventRefId { get; set; }
[ForeignKey("YogaSpaceEventRefId")]
public virtual YogaSpaceEvent YogaSpaceEvent { get; set; }
public int StudentId { get; set; }
}
Upvotes: 1
Views: 34
Reputation: 484
Instantiate your collection RegisteredStudents
before calling Add
.
public YogaSpaceEvent()
{
this.RegisteredStudents = new List<RegisteredStudent>();
}
Upvotes: 1