2008-12-19 24 views
2

我有以下項目解決方案:我怎麼辦是指APP_DATA從另一個項目

  • 有一個ASP.NET MVC的Web應用程序 在那裏我有一個SQL數據庫 (MDF文件)在App_Data目錄。

  • 有一個類庫,其中我 有一些從 migratordotnet遷移。在我的構建文件中,I 必須指定SQL 數據庫的位置,以便它可以運行 遷移。

有關遷移項目的那一刻我使用的是硬編碼路徑來訪問SQL數據庫的連接的字符串中。它看起來有點像這樣:

connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=C:\MySolution\MyMVCProject\App_Data\MyDatabase.mdf" 

這不是我想要做的。我也無法使用相對路徑(例如..\MyMVCPProject\AppData\MyDatabase.mdf,因爲migratordotnet中使用的SQL類不能正確翻譯它)但我想使用某種替代路徑,可以用|DataDirectory|在Web項目的Web.Config這樣的:

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True" 

我怎麼做到這一點?我無法在遷移項目中使用該連接字符串。因爲|DataDirectory|將轉到.NET Framework安裝路徑並在那裏查找數據庫文件。

回答

2

你想是這樣的(VB .NET代碼):

connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=" & Server.MapPath("~\App_Data\MyDatabase.mdf") 

使用Server.Mappath()會變成你的相對路徑到一個完全合格的路徑在運行時。

2

你有沒有考慮過只是將數據庫永久地添加到SQL Express中?這樣,您可以在兩個項目中使用相同的連接字符串,也不會綁定到文件系統路徑。

+0

沒有。在這個SQL Express中,我很新。 – Spoike 2008-12-19 11:03:11

相關問題