编辑:我不是在问什么System.NullReferenceException是。我试图了解为什么该对象的list属性为null以及如何防止它为空。
当我尝试将新项目添加到客户的订单列表中时,我收到了System.NullReferenceException。我考虑过将列表属性设为静态,但是我不确定这是正确的方法。 在这种情况下定义类的正确方法是什么?
using(var northwindContext = new NorthwindContext())
{
Customer customer = northwindContext.Customers.Find("ENGIN");
customer.Orders.Add(
new Order {
OrderId = 1,
OrderDate = DateTime.Now,
ShipCity = "Ankara",
ShipCountry = "Türkiye"
});
northwindContext.SaveChanges();
}
public class Customer
{
public string CustomerID { get; set; }
public string ContactName { get; set; }
public string CompanyName { get; set; }
public string City { get; set; }
public string Country { get; set; }
public List<Order> Orders { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public string CustomerID { get; set; }
public string ShipCity { get; set; }
public string ShipCountry { get; set; }
public DateTime OrderDate { get; set; }
public Customer Customer { get; set; }
}
答案 0 :(得分:0)
您尚未初始化Orders
属性,因此无法添加它。
customer.Orders = new List<Order>();
您还可以在属性本身上初始化它(我更喜欢这样,这样您就不会忘记它)
public List<Order> Orders { get; set; } = new List<Order>();