2012-11-12 9 views
5

Sto scrivendo un'applicazione utilizzando Entity Framework e ASP.NET MVC, quindi ho deciso di separare DAL da MVC Web Application. E in realtà tutto bene tranne il problema successivo (se è un problema): ho dovuto copiare la stringa di connessione Entity da app.config del progetto DAL a Web.config di Web Application. E in effetti sembra corretto: DAL non dovrebbe sapere la stringa di connessione a Data, è dovere dell'applicazione principale.app.config in DAL e web.config in WebApplication

Ma davvero non mi piace, che devo mantenere la stringa di connessione Entity in app.config di DAL, perché è necessario aggiornare il mio EntityModel (* .edmx). C'è qualche pratica migliore per fare riferimento alla stringa di connessione di Web Application? O sparisci, lo lascio come è adesso?

+0

Nel caso di utilizzare qualcosa come EF, EF non è il tuo DAL? Stai avvolgendo questo DAL in un DAL o il tuo? –

+1

Sì, giusto, sto avvolgendo EF nel mio progetto DAL – DanTheMan

risposta

6

Quindi, solo una spiegazione di cosa sta accadendo qui. Quando sviluppi la tua applicazione, il progetto DAL è, per sua natura, un proprio progetto. Quando si modifica il progetto DAL, Visual Studio utilizzerà i valori nel file di configurazione dei progetti. Quindi, perché la stringa di connessione rimane nel file app.config.

Ora, quando si pubblica l'intera soluzione su un server Web, l'applicazione Web è l'applicazione effettiva in esecuzione. Questo ha un riferimento alla dll DAL che è stata rispettata durante il processo di compilazione. Detto questo, la dll DAL otterrà tutti i suoi valori di configurazione da web.config poiché questo è il file di configurazione per l'assembly di esecuzione primario.

Per rispondere alla tua domanda, è probabilmente meglio tenerli sia in app.config e web.config per nessun altro motivo che non dovrai "creare una nuova connessione" ogni volta che devi aggiornare il tuo modello. Il progetto DAL, per quanto ne so, non guarderà mai ad un altro file di configurazione di progetti mentre è in Visual Studio. Tuttavia, avere stringhe di connessione sia in app.config che in web.conig non avrà alcun impatto sulla distribuzione. Le impostazioni web.config verranno sempre utilizzate.

+1

Tommy, grazie per la risposta dettagliata. Ora mi è chiaro che non c'è nulla di cui preoccuparsi – DanTheMan

Problemi correlati