次のコードは null 値の例外を発生させています
Record rec = (Record)obj.Records.Where(x => x.Id == no).SingleOrDefault();
が発生する可能性のある場所が 3 つありNullReferenceExceptionます (編集:であることがわかりIdましたint)。
obj.RecordsもしそうobjならnullRecords.Where(...)もしそうRecordsなら nullx.Id列挙型にnullエントリがある場合(つまり、そのコンテキストでは です)。obj.Recordsxnullそうでない場所は次のとおりです(コンパイルできると仮定します):
SingleOrDefault複数のエントリがある場合にのみ例外をスローします。存在しない場合はnull、参照型、または値型の既定値を返します。(Record)鋳造。コンパイルエラーがないのでRecord、クラスだと思います。値がある場合、それが無効なキャストである (null 例外ではない) 場合にのみ、例外がスローされます。A(Record)nullは、参照型に対して完全に有効です。デバッグしてステップスルーし、例外の原因を特定する必要があります。
まあ、そうであるか、レコードが見つからないかのどちらかobj.Recordsです。しかし、これも実際には機能しません... ...もちろんどこかで変数でない限り。null x.Id == nono
行を次のように変更します。
Record rec = obj.Records.Where(x => x.Id == no).SingleOrDefault() as Record;
タイプのdefaultは になりますnull。さらに、あなたのコードを完全には知りませんが、前述の行が単に次のようになる可能性はほとんどありません。
Record rec = obj.Records.Where(x => x.Id == no).SingleOrDefault();
Records種類の出品ではないRecordでしょうか?