0

メンバーシップテーブル(asp.netメンバーシップ)の一意の識別子から顧客テーブルに一意の識別子を設定しようとしています。

ただし、そうするとnull参照例外が発生します。これがコードです。

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

最後の行でクラッシュします。

データベースのCustomerテーブルとLINQtoSQLモデルで異なる設定を試しましたが、これを取得し続けています。

誰もが理由を知っていますか?

ありがとう

4

1 に答える 1

2

この式が原因でこれが表示されます。

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

が返さnullれ、それnullが変数に割り当てられていcustomerます。後で2行を使用するcustomerと、がスローされNullReferenceExceptionます。

ここで行う最善の方法は、このコードをデバッグして、何formValues["CustomerId"]が設定されているかを確認することです。おそらく、この値が設定されていないため、データベースで存在しないCustomerIdの顧客を検索することになります。

于 2009-09-27T15:06:15.930 に答える