Se la classe del database PETAPOCO è stata creata una volta per richiesta o ogni volta che è necessario?

StackOverflow https://stackoverflow.com//questions/10653695

  •  11-12-2019
  •  | 
  •  

Domanda

Con Petapoco, come dovrei gestire la creazione della classe Database? La mia applicazione sarà probabilmente utilizzata di vari repository (non del repository DDD, più come un repository gateway) per incapsulare le query.

Dal momento che avrò più repository che devono accedere alla stessa connessione del database, stavo pensando di creare una classe base che ha creato la classe base del database nel costruttore e chiama Dispose nel suo distruttore e semplicemente chiamare questo oggetto in tutti i derivati Classi, quindi penso che non avrei bisogno di un blocco usando in questo scenario (dal momento che quando la classe esce dallo scopo, chiuderà il database stesso).

Ho anche considerato solo la creazione dell'oggetto del database in Global.axax, sul metodo Application_BeginRequest, quindi è disponibile su ogni pagina, ma non sono del tutto sicuro di come funziona (penso che avrei bisogno di una sorta di classe DatabaseManager che lo istanzia? Ho visto questo approccio solo usato con cose come Nibernate e Ravendb) e che sembra spingere l'utilizzo dell'oggetto del database alla pagina ASPX stessa anziché tramite una classe di repository / strato di dati, che sembra puzzolente. < / P >.

Qualsiasi suggerimento Quale di questi approcci, se presente, funzionerà meglio? Ho anche visto che Petapoco supporta una "connessione condivisa" così è che qualcosa che voglio guardare anche per ridurre al minimo il numero di connessioni aperte al database?

È stato utile?

Soluzione

Di solito creo un Database per richiesta.È un oggetto leggero.Entrambi in un ActionFilter utilizza una classe base Controller.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top