Immagino che la conversione avvenga nel Business Layer in contrapposizione al Data Layer in modo che il Data Layer non abbia bisogno di conoscere ogni caso del suo utilizzo.
Con l'approccio attuale è responsabilità del codice chiamante sapere come utilizzare il livello dati. Se la conversione è avvenuta nel livello dati, dovrebbe essere a conoscenza di tutti i casi di codice chiamante.
Questo può essere piuttosto semplice in un primo momento, perché probabilmente hai un rapporto 1: 1 tra Business Objects / Entities e lo schema di archiviazione, ma non sarà sempre così.
Prendi l'esempio di due dipartimenti in un'azienda che lavora con un concetto simile ... diciamo un flusso di lavoro di approvazione. Il dipartimento A chiama ogni passaggio del flusso di lavoro a Bla . Il Dipartimento B adora che il Dipartimento A abbia automatizzato il proprio flusso di lavoro e desideri lo stesso, ma chiama i suoi passaggi del flusso di lavoro BongoBlas . È un fatto fondamentale del dominio aziendale che i due flussi di lavoro siano identici e lo saranno sempre, ma il processo aziendale è tale che i passaggi hanno nomi diversi (e anche alcuni dei campi dei metadati hanno nomi diversi).
In questo caso potresti sviluppare una seconda entità aziendale che utilizza la stessa persistenza della prima.
Se il livello dati era responsabile delle conversioni, ora sarebbe necessario estenderlo per gestire le conversioni BongoBla e le conversioni Bla esistenti. Questo sembra un po 'strano perché per quanto riguarda il livello dati questo è nessuna delle sue preoccupazioni .
Il livello dati è indipendente dal consumatore.
Ecco perché è più sensato che i consumatori del livello dati siano responsabili della conversione dei dati. Quando vengono aggiunti nuovi consumatori, deve essere scritto solo il codice del consumatore. Il livello dati può rimanere intatto. E questo ha senso perché le preoccupazioni del Data Layer non sono realmente cambiate.
Nota: ci scusiamo per lo scenario di esempio zoppo sopra. Se penso a qualcosa di meglio aggiornerò la risposta.