2009-04-26 50 views
3

我正在C#中製作WinForms應用程序。當我去創造我的數據庫對象,我擁有兩種選擇:LINQ Confusion - 應用程序關閉後數據庫不會持續存在?

  • 本地數據庫
  • 服務爲基礎的數據庫

所有我想要的是一個簡單的本地數據庫使用我的項目。

但是,如果我選擇「本地數據庫(精簡版)」,那麼之後我創造我的表,將它們拖動到一個LINQ到SQL類的創造者,它說:

選定的對象(S )使用不受支持的數據提供程序。

所以,我不知道爲什麼創建本地數據庫時,如果將表拖動到對象關係設計器時會被視爲不受支持的提供程序。

因此,我嘗試第二種類型,「基於服務的數據庫」。我爲我的基本應用程序佈置我的桌子,並製作我的桌子。當我拖動這些表格時,LINQ-To-SQL Designer正常工作,並繼續在我的應用程序中編寫代碼以插入和更新數據庫條目。

但是,使用第二個「基於服務的數據庫」時,只要應用程序正在運行,我的插入和更新就可以工作。但是,一旦我關閉它就會恢復到之前的狀態。如果我通過服務器瀏覽器手動添加數據,它會一直存在,但是我所做的任何插入操作都不會保存。

爲什麼我不能在LINQ上創建和使用本地數據庫?

如果這不是一個選項,那麼爲什麼不是「基於服務的數據庫」(不管是什麼),堅持超越應用程序關閉?

謝謝你的時間!


編輯:顯然LINQ-to-SQL對象設計器不能在Compact Edition本地數據庫上工作。它仍然可以完成,但你必須使用SqlMetal來生成dmbl文件。

回答

5

當您編譯時,舊的數據庫被刪除,並且一個新的數據庫被複制到bin文件夾中。因此,嘗試鏈接(使用linq)到bin文件夾中的數據庫。嘗試改變你的connectionString。

相關問題