Hello à tous,

J'ai récemment découvert une série de 3 articles via ce message.

N'ayant jamais eu de cours d'archi, je me forme sur le tas et cette série d'article tombe à pic !

Notemment, dans la partie où il traite des DTOParser et notamment des ordinaux afin d'accéder aux éléments des datareaders via leur index plutôt que leur nom (car c'est plus performant).

Pour un DTO simple, pas de souci. Mais comment fait-on pour un DTO qui contient d'autres DTO's ?

Prenons par exemple une classe Tel (pour téléphone) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Tel
    Public Property Id As Integer
    Public Property Type As TypeTel
    Public Property Pays As Pays
    Public Property Num As String
 
    Public Sub New(ByVal id As Integer, ByVal type As TypeTel, ByVal pays As Pays, ByVal num As String)
        Me.Id = id
        Me.Type = type
        Me.Pays = pays
        Me.Num = num
    End Sub
End Class
Où TypeTel indique de quel type de téléphone il s'agit (fixe, portable, fax, etc.) et Pays indique le pays histoire d'avoir l'indicatif téléphonique du-dit pays.

Donc en suivant l'article, je commence vaillamment à créer une classe ParserTel comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Parser_Tel
 
    Private ord_id As Integer
    Private ord_num As Integer
 
    Public Function PopulateDTO(reader As System.Data.SqlClient.SqlDataReader) As Tel
 
    End Function
 
    Public Sub PopulateOrd(reader As System.Data.SqlClient.SqlDataReader)
 
    End Sub
End Class
Mais je bloque pour Pays et TypeTel. Toutes les données nécessaires à la création de ces deux instances se trouvent dans la datareader (pour ne pas devoir refaire un accès db pou récupérer le pays et le type sur base de leur Id).
Faut-il faire appel au parser du DTO Pays dans la fonction PopulateDTO ??

J'espère avoir été clair