私はファイルストレージアプリケーションを開発しており、FileStreamタイプをデータベースに組み込みました。システムは大きなファイルをサポートすることが期待されます。アプリケーションの一部で、複数のドキュメントの一括アップロードが可能です。これらの文書は、システム内の他のエンティティにリンクする必要があります。Entity FrameworkがFileStream列をバイト配列にロードしないようにするにはどうすればよいですか?
1ページは、ユーザーがドキュメントを1つずつエンティティにリンクできるように、リンクされていないドキュメントを表示するように設計されています。アップロードプロセスの負荷テストを行った後、このリンクされていないドキュメントページを読み込むときに、ASP.NETワーカープロセスのメモリフットプリントが1GB以上に増加することがわかりました。
調査の結果、Entity Frameworkは、何百ものリンクされていないドキュメントのドキュメント行エンティティ(バイト配列に変換されたFileStreamを含む)全体を読み込んでいるようです。私のリポジトリクラスでは、モデルに変換するときにこのバイト配列を保存しませんが、それは遅すぎます。 EFは、バイト配列をリポジトリクラス表現に割り当てるために時間とメモリを費やしました。
明示的に要求しない限り、このバイト配列をロードしないようEFに指示する方法はありますか?
http://stackoverflow.com/a/3293286/782754遅延ロードのプロパティをマークすることはできませんが、他の概念に –