Traitée A quel moment s'effectue la connexion ?

  • mercredi 20 juin 2012 14:35
     
      A du code

    Bonjour, 

    J'utilise le LINQ to Entity et tout fonctionne parfaitement. Mais je souhaiterais comprendre son fonctionnement. J'ai lu beaucoup de doc mais je n'arrive toujours pas a comprendre le moment exact de la connexion avec la base (SQL Server 2008 R2). 

    Par exemple :

    If listeID IsNot Nothing Then
        Dim listePartiel = From elt In edm.CLASSEMODs.OfType(Of RSBDD.CLASSE)()
        For Each element As RSBDD.CLASSE In listePartiel
             If listeID.Contains(element.ID) Then
                  element.ESTPARTIELLE = True
              End If
         Next
    End If
    

    J'ai lu la doc concernant les "exécutions différées" ... J'ai aussi appris que la connexion était ouverte puis fermée immédiatement.

    Donc sur cet exemple, à quel moment se fait la ou les connexions ?

    Merci pour vos réponses. Hachème.

Toutes les réponses

  • mercredi 20 juin 2012 15:38
     
     Traitée

    Bonjour,

    les requêtes sont executés lorsqu'il y a une projection ( via les méthode ToList() ou ToArray()  par exemple... ) ou lorsque vous allez itérer sur les éléments donc dans votre cas lors du foreach ...

    Une trace via sql server profiler par exemple permettra facilement de vous en assurer.

    Cordialement

  • jeudi 21 juin 2012 06:21
     
     

    Bonjour, 

    Merci pour ta réponse. Je ne connaissais pas cet outil (je débute), et effectivement il y a une seule connexion au moment du "In listePartiel".

    Merci encore et bonne journée.

    Hachème.