Devo creare repository con funzioni speciali come getStaffActive ()?

7

Ho visto molti articoli ma nessuno mi aiuta davvero. Questo perché voglio usare dapper come un DAL. Devo creare repository con funzioni speciali? Come getStaffActive ()?

Se utilizzo i repository

  • Posso implementare con dapper-extension un generico crud
  • Non ho idea di come gestire la connessione al database. Dove aprire la connessione? Se lo faccio ad ogni funzione, allora come dovrei usare lo scope della transazione?

In qualche modo i repository con cui lavoro dovrebbero condividere una connessione affinché la transazione funzioni. Ma come farlo? Connessione di apertura in BLL?

Se uso le query e le eseguo direttamente, continuo a fare la stessa cosa.

    
posta GorillaApe 23.10.2012 - 11:25
fonte

2 risposte

4

Sembra che manchi il concetto di modello Unità di lavoro nel tuo progetto DAL.

Ci sono dei bei post che spiegano questi concetti qui:

risposta data 23.10.2012 - 13:37
fonte
3

(Chiarimento: questa risposta è stata scritta quando la domanda era su Stack Overflow)

Tutte queste domande sono architettoniche. Il modo in cui architetti la tua applicazione è complesso e dipende da molti aspetti. Ci sono molti modi, tutti validi, per farlo. Alcuni dipendono l'uno dall'altro, quindi se una decisione architettonica è "usa l'ambito della transazione", allora la strategia di gestione della connessione deve tenerne conto.

Dapper, tuttavia, è molto volutamente non architettonico. È puro dettaglio di implementazione. Si sforza molto duramente di non invadere nessuno dei tuoi codici o forzare le tue decisioni di progettazione su di te. La tua decisione architettonica potrebbe essere "usa dapper", o potrebbe essere "ottenere quei dati dal DB, il modo in cui otteniamo è un dettaglio di implementazione che non ci interessa, perché non è legato a nessun altro componente di design".

Sostanzialmente: nessuno può rispondere a questo tranne te . potrebbe essere una domanda ragionevole per programmers.SE, che ha un bias più architettonico (piuttosto che di implementazione). Potremmo migrare la domanda lì se lo desideri.

    
risposta data 23.10.2012 - 11:38
fonte

Leggi altre domande sui tag