Re Hello,

Ce post fait suite à mon dernier en fait... Sur le fait que la DAL puisse retourner directement des objets de type DTO (sans mapper).

Parce qu'en fait j'avais fait un projet de test. Avec Trois tables en bases de données, j'ai mes DTO, ma DAL tout ça.

Et (je ne sais pas comment j'ai fais), mais lorsue je je fais du link dans la DAL, ça me retourne directement des DTO.
Et ça marche !!! J'ai pu éditer les enregistrements en base de données sans problème.

En creusant, j'arrive sur le fichier Model.context.vb, et les types déclarés sont de type DTO, ça ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Imports System
Imports System.Data.Entity
Imports System.Data.Entity.Infrastructure
 
Partial Public Class TESTEntities
    Inherits DbContext
 
    Public Sub New()
        MyBase.New("name=TESTEntities")
    End Sub
 
    Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
        Throw New UnintentionalCodeFirstException()
    End Sub
 
    Public Overridable Property Client() As DbSet(Of Client)
où le DBset(Of Client), le CLient est de type DTO.Client....

Or quand j'ai commencé un nouveau projet, ce type là est de type DAL.Client.


Pour tester, dans le nouveau projet je force le type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Public Overridable Property Client() As DbSet(Of DTO.Client)
Il est d'accord... Donc je me demande comment dans un projet il pointe sur DTO, et dans l'autre la DAL...

J'ai regarder les fichiers Context.tt des deux projets ... ils sont pareils...

Il y a forcement un truc que j'ai fais dans le premier projet, et pas dans le deuxième... Je vois pas quoi...

Si quelqu'un a une idée, je suis preneur.