これはどうしてですか?コードは文字通りentity!= nullだが、デバッガはそれがnullだと考える。何が起こっている?Visual Studioデバッガで間違った値が表示される(値が必要な場合はnull)
私はすでにも、PCを再起動し、洗浄、再コンパイル、x86のに変更。そして、コードは常にこのように、if文が異なるバージョンはありません。私が続けると、nullポインタ例外が発生しません。
これはどうしてですか?コードは文字通りentity!= nullだが、デバッガはそれがnullだと考える。何が起こっている?Visual Studioデバッガで間違った値が表示される(値が必要な場合はnull)
私はすでにも、PCを再起動し、洗浄、再コンパイル、x86のに変更。そして、コードは常にこのように、if文が異なるバージョンはありません。私が続けると、nullポインタ例外が発生しません。
わかりませんが、ChangeTracker.Entries()
機能と組み合わせてforeach
ループの効果だと思います。
foreach関数は、必要に応じていくつかのデータを収集します。 したがって、すべてのデータがChangeTracker.Entries()
から取得されず、その後に各値でループが開始されます。あなたがオブジェクトを使用していないので、
それはより多くの関数から最初の値を取得していますまだ。
ChangeTracker.Entries()
をChangeTracker.Entries().ToList()
に変更すると、変更が反映されると思います。
イテレータ機能の詳細については、yield
コマンドを参照してください。 (論理は少し混乱しています:)
同じ名前の変数がメソッドの前に宣言されていた場合、同じ問題が発生しました。 その場合、デバッガは最初の変数に「通知」します。実際のコード実行には何の影響もありません。
なぜこれが起こっているのか分かりませんが、forループをLinqクエリにリファクタリングすると同じエラーが発生しますか? –
'Immediate Window'は' entity'をチェックするときに何を言いますか? – Jonesopolis
私はこれまでにbinとobjのフォルダを一掃しました – KiwiPiet