0

linq でストアド プロシージャを使用しようとしました。

null の場合result.FirstOrDefault().CustomerName、次の例外が発生します。

NullReferenceException が処理
されませんでした オブジェクト参照がオブジェクトのインスタンスに設定されていません

次のコードを使用します。

var result = context.sp_CustomerInformation(CustomerId).ToList();
var MyCustomerName = result.FirstOrDefault().CustomerName;

どこで私は間違えましたか?

4

1 に答える 1

1

FirstOrDefault()結果が一致しない場合にタイプのデフォルト値を返すため、そのエラーが発生しています。この場合、デフォルト値は null です。したがって、null オブジェクトのプロパティにアクセスしようとすると、NullReferenceException.

次のようなものが必要です:

var result = context.sp_CustomerInformation(CustomerId).ToList();
var object = result.FirstOrDefault();
var MyCustomerName = "";

if(object != null)
    MyCustomerName = object.CustomerName;
else
    // do something here if there were no results

result価値があるのは、おそらくクエリを組み合わせることもできます。

var result = context.sp_CustomerInformation(CustomerId).FirstOrDefault();

代わりに、ToList()一致するすべてのレコードを返します。FirstOrDefault最初のレコードのみを取得します。次に、上記の例のresult代わりに使用できます。object

于 2013-09-27T13:45:33.140 に答える