ここで、すでに未回答の質問があります。
私の質問は -
EF は実際に大規模なアプリケーションを運用する準備ができていますか?
質問は、これらの根本的な質問から生まれました -
- EF はすべてのレコードをメモリにプルしてから、クエリ操作を実行します。テーブルに約 1000 件のレコードがある場合、EF はどのように動作しますか?
- 簡単な編集のために、レコードをプルして編集し、次を使用してデータベースにプッシュする必要があります
SaveChanges()
ここで、すでに未回答の質問があります。
私の質問は -
EF は実際に大規模なアプリケーションを運用する準備ができていますか?
質問は、これらの根本的な質問から生まれました -
SaveChanges()
1. EF はすべてのレコードをメモリにプルし、クエリ操作を実行します。テーブルに約 1000 件のレコードがある場合、EF はどのように動作しますか?
それは真実ではない!EF は必要なレコードのみをフェッチし、クエリは適切な SQL ステートメントに変換されます。EF は、オブジェクトを内部でローカルにキャッシュできますDataContext
(エンティティに加えられたすべての変更を追跡できます) が、必要な場合にのみコンテキストを開いたままにしておくという規則に従っている限り、問題にはなりません。
2.簡単な編集のために、レコードをプルして編集し、SaveChanges() を使用してデータベースにプッシュする必要があります
それは本当ですが、パフォーマンスの問題が実際に発生しない限り、私はわざわざそうするつもりはありません。1. が当てはまらないため、保存する前に DB から 1 つのレコードのみを取得します。SQL クエリを文字列として作成し、プレーンな文字列として送信することで、これを回避できます。
SaveChanges()
の変更を保持できます。