LoadWith
viene utilizzato per eseguire un carico ansioso di un'associazione in contrasto predefinito pigrizia carico.
Normalmente, le associazioni vengono caricate la prima volta che le si fa riferimento. Ciò significa che se selezioni 100 Order
istanze e poi fai qualcosa con ciascuna delle loro Details
, stai effettivamente eseguendo 101 operazioni SELECT
contro il database. D'altra parte, se lo LoadOptions
specifica LoadWith<Order>(o => o.Details)
, allora è tutto fatto in un unico SELECT
con un JOIN
aggiunto.
AssociateWith
non ha alcun effetto sulla quando l'associazione viene caricato, proprio quello che viene caricato. Aggiunge una clausola WHERE
ogni volta che si carica un'associazione.
Come dici tu, viene utilizzato per automaticamente dati di filtro. Normalmente lo useresti se sai che un'associazione ha un numero molto grande di elementi e hai solo bisogno di un sottoinsieme specifico di essi. Di nuovo, è principalmente un ottimizzazione delle prestazioni, solo un tipo diverso.
Questa riga ha chiarito per me "AssociateWith non ha alcun effetto su quando viene caricata l'associazione, solo su cosa viene caricato". Grazie. – stackoverflowuser