LoadWith
se utiliza para realizar una carga ansiosos de una asociación en contraposición a la forma predeterminada carga perezoso.
Normalmente, las asociaciones se cargan la primera vez que las referencia. Eso significa que si selecciona 100 Order
instancias y luego hace algo con cada uno de sus Details
, en realidad está realizando 101 SELECT
operaciones en la base de datos. Por otro lado, si el LoadOptions
especifica LoadWith<Order>(o => o.Details)
, entonces todo se hace en un solo SELECT
con un JOIN
agregado.
AssociateWith
no tiene ningún efecto sobre cuando se carga la asociación, simplemente lo que se carga. Agrega una cláusula WHERE
cada vez que carga una asociación.
Como dices, AssociateWith
se utiliza para automáticamente datos de filtro. Normalmente, usaría esto si sabe que una asociación tiene una gran cantidad de elementos y solo necesita un subconjunto específico de ellos. Una vez más, es principalmente una optimización del rendimiento, solo un tipo diferente.
Esta línea dejó en claro para mí "AsociarWith no tiene ningún efecto sobre cuándo se carga la asociación, solo lo que está cargado". Gracias. – stackoverflowuser