我试图访问我在模型中完成关系的变量:
// Threads
public class Thread
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int NumberOfMessages { get; set; }
public int ViewCount { get; set; }
public string[] Tags { get; set; }
public DateTime LastEdited { get; set; }
public int Vote { get; set; }
// Other model relations
public virtual ICollection<Message> Messages { get; set; }
public virtual Group Group { get; set; }
public virtual ForumUser User { get; set; }
}
我试图向数据库添加消息并在消息列表中引用它
thread.Group.Id = groupId;
它给了我一个NULL引用异常。我现在真的知道这是如何运作的。
我将展示另一个可能更多解释的例子
` // Saving the message in the database
forumDb.Messages.Add(block);
forumDb.Threads.Find(threadId).Messages.Add(block);
forumDb.SaveChanges();
}`
如果我做错了一个例子,那么最后一个例子的模型是相同的
答案 0 :(得分:0)
根据您提供的信息,您似乎没有初始化线程的Group属性。
创建对象时,不会初始化它的属性。由于您尝试访问未初始化的Group对象的id属性,因此会获得空引用异常。
要解决您的问题,您可以这样做:
thread.Group = new Group(); // First initialize the group
thread.Group.Id = groupId; // Set the id of the newly created Group object.