我正在尝试从我的会员表(asp.net会员资格)中的唯一标识符设置我的客户表中的唯一标识符。
但是这样做时我得到一个空引用异常。这是代码。
Customer customer = db.Customers.SingleOrDefault(c => c.Id == Convert.ToInt32(formValues["CustomerId"]));
Guid userId = new Guid(user.ProviderUserKey.ToString());
customer.UserId = userId;
它在最后一行崩溃。
我在数据库和LINQ to SQL模型的Customer表中尝试了不同的设置,但我不断得到它。
任何人都知道为什么?
由于
答案 0 :(得分:2)
你看到这个是因为这个表达式:
db.Customers.SingleOrDefault(
c => c.Id == Convert.ToInt32(formValues["CustomerId"]));
正在返回null
,并且null
被分配给customer
变量。当您使用customer
两行后,它会抛出NullReferenceException
。
这里要做的最好的事情是调试此代码并查看formValues["CustomerId"]
设置的内容 - 很可能这个值是而不是设置,这会导致您查找客户不存在的CustomerId的数据库。