2012-11-12 30 views
5

我正在使用實體框架和ASP.NET MVC編寫應用程序,因此我決定將DAL從MVC Web應用程序中分離出來。實際上一切都很好,除了下一個問題(如果是問題):我不得不將實體連接字符串從DAL項目的app.config複製到Web應用程序的Web.config。實際上它看起來是正確的:DAL不應該知道關於Data的連接字符串,它是主應用程序的職責。DAL中的app.config和WebApplication中的web.config

但我真的不喜歡,我必須保持實體連接字符串在DAL的app.config中,因爲它需要更新我的EntityModel(* .edmx)。是否有一些最佳實踐來引用Web應用程序的連接字符串?還是我現在就離開它?

+0

在使用類似EF的情況下,是不是EF您的DAL?你是將DAL包裝在DAL還是你自己的? –

+1

是的,對,我在我的DAL項目 – DanTheMan

回答

6

所以,只是解釋這裏發生了什麼。在開發應用程序時,DAL項目本質上是自己的項目。編輯DAL項目時,Visual Studio將使用項目配置文件中的值。因此,爲什麼連接字符串停留在該app.config文件中。

現在,當您將整個解決方案發布到Web服務器時,Web應用程序就是正在運行的實際應用程序。這有一個在構建過程中遵循的DAL dll的引用。鑑於此,DAL DLL將從web.config獲取其所有配置值,因爲這是主執行程序集的配置文件。

要回答你的問題,可能最好將它們保存在app.config和web.config中,除非你不需要每次更新模型時都「創建新的連接」。就我所知,DAL項目在Visual Studio中不會查看其他項目配置文件。但是,在app.config和web.conig中都有連接字符串不會影響您的部署。 web.config設置將始終使用。

+1

Tommy中包裝EF,謝謝你的詳細解答。現在很清楚,沒有什麼可擔心的 – DanTheMan

相關問題