1

私は約 20 個のテーブルを持つ小さなプロジェクトを持っています。行エントリの内容のサイズは最小限ですが、テーブル間にはたくさんの関係があります。

最初にコードを使用し、すべてのナビゲーション プロパティを仮想として設定しています。

今日、Add メソッドを使用して DbSet にエンティティを追加し、エンティティに約 6 ~ 7 個の外部キーがある場合、(SaveChanges を実行せずに) DbContext に約 2000 個のエンティティを追加すると、約 30 秒かかり、CPU が 100 でスタックすることに気付きました。 %。

エンティティに仮想ナビゲーション プロパティが多すぎる場合、既知のパフォーマンス ヒットはありますか?

4

1 に答える 1

2

ほとんどの場合、EF は変更を追跡しているだけであり、エンティティはエンティティを追跡していないため、ef は依存エンティティの検索に時間を費やしています。

私の最初の試みは、エンティティを「変更追跡エンティティ」にしようとすることです。これを行うには、ナビゲーション プロパティだけでなく、すべてのプロパティを仮想化します。

于 2013-05-16T17:37:28.737 に答える