0

今日、メモリからルックアップ データをロードするプロキシ エンティティを作成しています。

エンティティ フレームワークは、Countries / Places テーブルへの結合を生成しないように十分に賢くある必要があることをお勧めします。

DbContext.Users.Include(u => u.Country.Select(c => c.Place))

代わりに、EF はメモリからデータをフェッチする必要があります。

エンティティ フレームワークでルックアップ データをどのように処理しますか?

4

1 に答える 1

0

それで、EFがアクセスする前にすべてのルックアップテーブルをメモリに熱心にロードしたいですか?これは少し厄介で重い手に聞こえます。(ルックアップに更新がある場合はどうなりますか?どのように同期しますか?)Pksを使用している場合、ルックアップテーブルへの結合は迅速です。ルックアップテーブルをメモリにロードする必要がある場合でも、テーブルデータを保持しているプロキシオブジェクトへのlinqクエリで結合を行う必要があります。確かなデータはありませんが、2つの手法のパフォーマンスに大きな違いは見られません。どちらかといえば、Linqの例は遅いかもしれません。

私の大まかなルールは、2つの手法の速度と見返りが似ている場合は、それほど複雑でなく、保守が容易な手法を使用することです(この場合、Include()を使用します)。

于 2012-05-24T15:49:27.780 に答える