我有一個WPF項目設置爲通過Visual Studio Express 2012 for Desktop中的ADO.NET實體數據模型使用本地SQL Server Compact數據庫。該項目運行良好,第一次運行時我可以加載所有數據,隨心所欲地操作它,稍後再將更改後的數據放回原處。WPF + SQL Server Compact調試和部署
我注意到,雖然對VS可見的數據只做了一小部分重構,但這只是我在創建數據庫時手動輸入的第一位數據,而下一次我編譯了自從我添加的所有數據失去了!
經過一番深入的研究,我得出結論:應用程序的編譯版本使用通過文件的Content:Copy If Newer構建動作發送到bin/Debug文件夾的SDF文件。這意味着可能有多達4個不同的數據庫副本需要擔心:項目文件夾,調試文件夾,發佈文件夾以及最終用戶PC上的部署副本。
我希望在我的開發機器上有一個單獨的副本,可以通過ClickOnce安裝在最終用戶的PC上,由調試和發佈編譯版本以及VS中的數據庫資源管理器訪問。我想我可以在開發過程中將連接字符串更改爲絕對路徑,並希望在發佈進行部署前,我可以記住將其更改回相對路徑。
最後,我預見還需要爲這個應用程序發佈更新,並且擔心如果這樣的更新會在最終用戶的數據執行不當時抹去最終用戶的數據。如果可能的話,我希望只有在我發佈更新時才能更新最終用戶數據庫的架構,而不必觸摸數據本身。如果這是不可能的,那麼可以接受,我只需要確保在第一次部署之前將所有可以考慮的結構放入數據庫中。
總之我的問題有以下幾點:
如何分享VS,調試和發佈之間的單個SQL壓縮數據庫?
如何在應用程序部署和更新期間處理本地數據庫,可選擇更新數據庫模式而不擦除數據的能力?
您也可以編程方式創建數據庫以完全控制。 – ErikEJ
這可以工作。有沒有這樣的例子?如果可能的話,我想維護類的使用EF和數據源的綁定。 – CuddleBunny