2 votes

Comment "ToList" modifie-t-il le résultat de ma requête EntityFramework ?

Bonjour, j'utilise entity framework / Vb.net 2010. J'ai un formulaire avec bindingsource to entity , et je voudrais savoir quelle est la différence entre ces 2 instructions :

  1. MyBindingSource.datasource = From t in context.MyTable1 where ...some conditions Sélectionner t

  2. MyBindingSource.datasource = (From t in context.MyTab Select t).ToList

Le problème est que lorsque j'utilise chacune de ces instructions, j'ai des situations différentes lorsque j'ajoute, supprime ou modifie un enregistrement sur bindingsource (par exemple, lorsque j'utilise la deuxième instruction, lorsque je supprime quelque chose sur l'entité, l'enregistrement existe toujours sur bindingsource jusqu'à ce que je ferme et rouvre le formulaire ou que je supprime l'enregistrement de bindingsource également, si j'utilise la première instruction lorsque je supprime de l'entité, bindingsource est mis à jour instantanément).

Pouvez-vous m'expliquer, s'il vous plaît, lequel d'entre eux dois-je utiliser ? Je vous remercie.

4voto

Jon Egerton Points 16192

La première renvoie une requête, à laquelle vous pouvez ajouter d'autres clauses where, ordering, etc. Le fait de lier cette requête à la source de données entraînera son exécution. Cela maintiendra le lien avec les entités de sorte que la source de liaison puisse être mise à jour automatiquement.

Le second exécute la requête et renvoie la liste des objets. Celle-ci est ensuite liée à la source de données. Cette liste est distincte de l'entité et doit donc être relue, ce qui se produit lorsque vous rouvrez le formulaire.

0voto

Abbas Points 7413

La première renvoie un IEnumerable(OfType T) et la seconde une List(OfType T).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X