現在、次のようなデータベースがあります
Person Table
Id
Name
AddressLookupTypeId
AddressLookupType Table
Id
Description
SortOrder
エンティティ フレームワーク 4.0 のデザイナーを使用して 2 つのテーブルを追加すると、両方のクラスでナビゲーション プロパティが取得されます。
Person Class
Id
Name
AddressLookupType - Nav Property
AddressStatusLookup Class
Id
Description
SortOrder
Person - Navigation Property
現在、個人テーブルには約 300 万以上のレコードがあり、住所タイプには約 50 程度のレコードしかありません。誰かのステータスを更新し、何らかの理由で変更の保存を呼び出すと、更新に永遠に時間がかかります。コード実行の途中で一時停止してデバッグすると、FixupAddressStatusLookup というメソッドになります。ここで何が起こっているのか正確にはわかりませんが、同じ addressstatustype を持つ Person レコードのサブセットをループしているように見えます。それは私の最善の推測です。デザイナーで AddressStatusLookup クラスから Person ナビゲーション プロパティを削除すると、コードはすぐに実行されます。ここで何が起こっているのか、誰か説明できますか? AddressStatusLookup で Person へのナビゲーション プロパティを設定すると、このような遅延が発生するのはなぜですか?
ありがとう