Sto sviluppando un'applicazione di archiviazione di file e abbiamo incorporato il tipo FileStream nel nostro database. Si prevede che il sistema supporti file di grandi dimensioni. Una parte dell'applicazione consente il caricamento collettivo di più documenti. Questi documenti devono quindi essere collegati ad altre entità all'interno del sistema.Come impedire a Entity Framework di caricare una colonna FileStream in un array di byte?
Una pagina è progettata per mostrare documenti non collegati, per consentire a un utente di collegare i documenti uno alla volta alle entità. Dopo aver eseguito alcuni test di caricamento del processo di caricamento, abbiamo rilevato che l'ingombro di memoria del processo di lavoro ASP.NET è aumentato a un GB durante il caricamento della pagina Documenti non collegati.
Dopo le indagini, sembra che Entity Framework stia caricando l'intera entità di riga del documento (incluso FileStream, convertita in un array di byte) per centinaia di documenti non collegati. Nella mia classe di repository, non salvi questo array di byte durante la conversione in un modello, ma a quel punto è troppo tardi. EF ha trascorso il tempo e la memoria per allocare l'array di byte nella rappresentazione della classe Repository.
C'è un modo che posso dire a EF di non caricare questo array di byte a meno che non lo chieda esplicitamente?
http://stackoverflow.com/a/3293286/782754 Non è possibile contrassegnare una proprietà per caricamento pigro, ma è possibile utilizzare altri concetti –