NullReferenceException en essayant d’append une relation un à plusieurs

Item peut contenir plusieurs Sizes . Lorsque j’essaie d’append une nouvelle taille à mon élément, NullReference erreur NullReference est NullReference . La même chose se produit lorsque j’essaie d’append des images à mon article.

La référence d’object n’est pas définie à une instance d’un object.

Code

 var size = new Size(){ BasePrice = currentBasePrice, // not null, checked in debugger DiscountPrice = currentDiscountPrice // not null, checked in debugger }; // item is not null, checked in debugger item.Sizes.Add(size); // nothing here is null, however it throws null reference error here 

Modèle d’article

 public class Item { public int ID { get; set; } public int CategoryID { get; set; } virtual public Category Category { get; set; } virtual public ICollection Sizes { get; set; } virtual public ICollection Images { get; set; } } 

Modèle de taille

 public class Size { public int ID { get; set; } public int ItemID { get; set; } virtual public Item Item { get; set; } // sortinged to delete this, did not help public decimal BasePrice { get; set; } public decimal? DiscountPrice { get; set; } } 

Vous devez append un constructeur à Item qui initialise la collection Sizes. Les propriétés automatiques simplifient une variable de support mais ne l’initialisent pas.

 public Item() { this.Sizes = new List(); } 

Je suppose que Item.Sizes est null. Vous n’avez pas initialisé la collection, donc item.Sizes.Add lève l’ NullReferenceException .

 public class Item { public int ID { get; set; } public int CategoryID { get; set; } virtual public Category Category { get; set; } virtual public ICollection Sizes { get; set; } virtual public ICollection Images { get; set; } public Item() { Sizes = new List(); } }