Je ne trouve pas de version asynchrone de RemoveRange. Mais, il existe par exemple pour AddRange. Est-ce que quelqu'un sait pourquoi ? Il me semble étrange de ne pas avoir un ensemble homogène de commandes.

6
Notbad 11 févr. 2020 à 15:40

1 réponse

Meilleure réponse

Parce qu'il s'agit d'un fonctionnement synchrone et fournir une fausse méthode Async qui s'exécute de manière synchrone et renvoie la tâche terminée serait trompeur et contraire aux principes de la méthode asynchrone.

EF Core fournit des versions asynchrones uniquement pour les méthodes qui accèdent potentiellement à la base de données - par ex. Add{Range}, Find, SaveChanges, Dispose, et synchroniser uniquement la version pour les méthodes qui fonctionnent uniquement sur l'état (change tracker) comme Attach{Range}, Update{Range}, Remove{Range}.

La raison pour laquelle Add{Range} a une version asynchrone est expliquée dans la documentation :

Cette méthode est asynchrone uniquement pour permettre aux générateurs de valeurs spéciales, tels que celui utilisé par Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo, d'accéder à la base de données de manière asynchrone.

3
Ivan Stoev 11 févr. 2020 à 21:23