Windows Phone OS 7.1,可以將關係資料存放區在駐留在應用程式隔離儲存區 (Isolated Storage)容器的本機資料庫中。Windows Phone 應用程式使用 LINQ to SQL 執行所有資料庫操作;LINQ to SQL 用於定義資料庫結構描述、選擇資料,並將更改儲存到駐留在隔離儲存區 (Isolated Storage)中的基礎資料庫檔案;提到LINQ to SQL,你會不會感到欣喜,It’s amazing在window phone裡我們居然可以這樣來持久化資料 :),本文將帶領大家一同建立第一個windows phone本機資料庫應用--連絡人管理。
本系列包括以下:
1.資料庫建立
2.從隔離儲存區 (Isolated Storage)中找到資料庫檔案並copy到pc上
3.複用2中的資料庫(其他程式使用2中的資料庫檔案或者使用2中初始的資料)
前一篇已經向大家介紹了,mango中的本機資料庫使用linq to sql建庫、建表以及初始化內建資料,並對庫進行增刪改查;很多人要問了,可是我們建立的庫在哪裡呢,我其他的應用怎否使用這個庫,因為需要share資料,或者我用一二程式專門來維護資料庫裡的內建資料,我其他的應用來使用這個維護好的資料庫可以嗎?答案是當然可以,其實我們之前建立的程式可以稱之為協助器應用程式,因為我們只是使用它來建庫、建表、初始化內建資料、或者維護裡面的資料;但是最終發布到應用市場並給使用者真正使用的庫,肯並不能在使用者首次開啟應用時建立,那樣代價太高;今天我們主要是找出上一篇中我們建立出的資料庫物理檔案,然後把它copy到我們的pc上,有了物理檔案,在下一篇我會介紹如何在其他應用裡引用這個資料庫;
好了,let 's go.
要想找到我們建立的資料庫物理檔案,需要使用微軟提供的隔離儲存區 (Isolated Storage)資源管理員(ISETool.EXE),它是一個在windows phone sdk裡的命令列工具。使用它可以列出、複製和替換隔離儲存區 (Isolated Storage)中的檔案和目錄(隔離儲存區 (Isolated Storage)只允許當前應用訪問);
要想使用隔離儲存區 (Isolated Storage)資源管理員,必須在迷你器或者測試機裡安裝我們的應用,並且模擬器或測試機處於運行狀態;它的檔案目錄在:
它支援的一些命令選項有:
ts |
(拍攝快照)將隔離儲存區 (Isolated Storage)中的檔案和目錄從裝置或模擬器複製到您的電腦。 |
rs |
(還原快照)使用您電腦中的檔案和目錄替換裝置或模擬器上隔離儲存區 (Isolated Storage)中的檔案和目錄。 |
dir |
列出隔離儲存區 (Isolated Storage)的指定目錄中的檔案和目錄。若未指定目錄,則列出根目錄中的檔案和目錄。 |
device-folder |
指定目標裝置或模擬器上隔離儲存區 (Isolated Storage)中的目錄。 |
xd |
指示以模擬器為目標。 |
de |
指示以疊接裝置為目標。 |
Product GUID |
在要測試的應用程式的 WPAppManifest.xml 檔案中指定 ProductID。 |
desktop-path |
指定電腦上寫入隔離儲存區 (Isolated Storage)檔案或從中複製隔離儲存區 (Isolated Storage)檔案的指定目錄。當使用 ts 命令複製檔案時,將在 desktop-path 中建立名為 IsolatedStore 的子目錄。如果指定的目錄已存在,則 ts 命令將重寫目錄中的內容,而不發出任何警告。 |
好了,那我們開始行動吧:
1.首先找到我們應用的Product Guid:它在 WPAppManifest.xml 中,解決方案中的目錄是、
在檔案中找到ProductID,我的demo是:ac5b5d62-573c-4134-b290-0ad4f678ad7f
2.將應用發布到模擬器或測試機(我這裡運行一遍,這樣會有我添加的資料)
3. 使用命令列工具將目錄切換到ISETool.EXE的目錄,先列出隔離儲存區 (Isolated Storage)中的檔案目錄:
輸入的命令為: ISETool.exe dir xd ac5b5d62-573c-4134-b290-0ad4f678ad7f
tips:因為我用的是模擬器所以命令列中都用的是xd(以模擬器為目標),如果您是測試機需要是用de
輸出為:
是不是很熟悉,看到我們建立的資料庫檔案了嗎?MyContactor.sdf.
4.copy到pc:
輸入命令:ISETool.exe ts xd ac5b5d62-573c-4134-b290-0ad4f678ad7f "D:\ISOData"
tips:因為我用的是模擬器所以命令列中都用的是xd(以模擬器為目標),如果您是測試機需要是用de
輸出為:
好了,提示成功下載到我們指定的D:\ISOData目錄了
5.找物理檔案:去D:\ISOData中找我們的隔離儲存區 (Isolated Storage)檔案
哈哈,如約而至,就是它,我們找到資料庫物理檔案了,
可惜的是目前沒有方法直接open這個物理檔案
下一篇將介紹如何在另一個應用引用這裡的資料庫檔案;
Demo,這一篇只是為了找到之前建立的資料庫檔案,所以demo代碼沒有任何修改..