LoadWith
est utilisé pour effectuer une charge désireux d'une association par opposition à la valeur par défaut charge paresseux.
Normalement, les associations sont chargées la première fois que vous les référencez. Cela signifie que si vous sélectionnez 100 Order
instances, puis que vous faites quelque chose avec chacun de leurs Details
, vous effectuez en réalité 101 SELECT
opérations sur la base de données. D'autre part, si le LoadOptions
spécifier LoadWith<Order>(o => o.Details)
, alors tout est fait dans un seul SELECT
avec un JOIN
ajouté.
AssociateWith
n'a pas d'effet sur lorsque l'association est chargée, juste ce que est chargé. Il ajoute une clause WHERE
chaque fois que vous chargez une association.
Comme vous le dites, AssociateWith
est utilisé pour automatiquement les données du filtre. En règle générale, vous utiliserez ceci si vous savez qu'une association contient un très grand nombre d'éléments et que vous n'avez besoin que d'un sous-ensemble spécifique. Encore une fois, c'est principalement une optimisation des performances, juste un genre différent.
Cette ligne m'a clairement indiqué "AssociateWith n'a aucun effet sur le moment où l'association est chargée, juste ce qui est chargé". Merci. – stackoverflowuser