none
A quel moment s'effectue la connexion ? RRS feed

  • Question

  • 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.

    mercredi 20 juin 2012 14:35

Réponses

  • 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

    mercredi 20 juin 2012 15:38

Toutes les réponses

  • 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

    mercredi 20 juin 2012 15:38
  • 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.

    jeudi 21 juin 2012 06:21