0

我想我一定是错过了一些直视我的东西。

这是我的代码:

 var addToBasket = new AddToBasket                                                                         
            {
                RetailerId = retailerId,
                ProductId = productId,
                Price = price,
                CreatedAt = DateTime.Now,
                WidgetImpressionId = widgetImpressionId,
                Quantity = quantity,
                VisitStore = false
            };
            _addToBasketRepository.Add(addToBasket);

Add我得到一个 NullReferenceException

除了我检查了所有值并且它们都不是空的:

在 VS 的 Watch 窗口中:

addToBasket {AddToBasket Id = 0, RetailerId = 80, ProductId = 6566, Price = 1.89, CreatedAt = 24/10/2013 15:57:37, WidgetImpressionId = 191489981, VisitStore = False} WidgetData.AddToBasket

我知道 Id = 0 但它是一个自动递增的 Id 列,所以我认为这不是问题所在。

4

2 回答 2

3

唯一可能为 null 以引发此类异常的对象是_addToBasketRepository

我认为那是你的罪魁祸首。你还没有实例化_addToBasketRepository

即使其他对象为空,它们也不会抛出 a NullReferenceException,直到您尝试访问相关对象的属性或方法。


您可以通过在使用之前添加以下行来解决此问题_addToBasketRepository

// assuming that it is indeed a List and not some other collection
_addToBasketRepository = new List<AddToBacket>()  
于 2013-10-24T15:02:00.677 回答
0

_addToBasketRepository在使用 Add 方法之前是否进行了初始化?如果您可以包含AddToBasket构造函数的代码,也会有所帮助。

于 2013-10-24T15:04:00.627 回答