Supposons que nous avons une méthode comme ceci:Charge-t-il les données de la base de données?
où le contextepublic IEnumerable<T> FirstMethod()
{
var entities = from t in context.Products
where {some conditions}
select t;
foreach(var entity in entities)
{
entity.SomeProperty = {SomeValue};
yield return entity;
}
}
est un DataContext qui est généré par LINQ to SQL Designer. Est-ce que "FirstMethod" charge les données en mémoire à partir de la base de données (à cause de la boucle foreach) ou va-t-il les différer jusqu'à ce qu'une autre méthode foreach qui ne possède pas "yield return" soit trouvée Suivant?
public void SecondMethod()
{
foreach(var item in FirstMethod())
{
{Do Something}
}
}
(mis à jour re votre commentaire, ajoutée ici pour une meilleure visibilité) –