0

我正在尝试根据我的会员表(asp.net 会员资格)中的唯一标识符在我的客户表中设置一个唯一标识符。

但是,这样做时我得到一个空引用异常。这是代码。

 Customer customer = db.Customers.SingleOrDefault(c => c.Id == Convert.ToInt32(formValues["CustomerId"]));
 Guid userId = new Guid(user.ProviderUserKey.ToString());
 customer.UserId = userId;

它在最后一行崩溃。

我在数据库的 Customer 表和 LINQ to SQL 模型中尝试了不同的设置,但我一直得到这个。

有谁知道为什么?

谢谢

4

1 回答 1

2

你看到这个是因为这个表达式:

db.Customers.SingleOrDefault(
    c => c.Id == Convert.ToInt32(formValues["CustomerId"]));

正在返回null,并且null正在分配给customer变量。当您customer稍后使用两行时,它会抛出NullReferenceException.

最好的办法是调试此代码并查看formValues["CustomerId"]设置的内容 - 很可能设置此值,这导致您在数据库中查找客户以查找不存在的 CustomerId。

于 2009-09-27T15:06:15.930 回答