1、什么是本地数据库?

你现在可以在IsolatedStorage中保存关系数据到本地数据库。

在windows phone中,所有应用程序都是相互“隔离”的,这意味着一个程序只能访问它自己的IsolatedStorage,即一个数据库只能应用于一个应用程序,并不能在几个应用程序中共享。

本地数据库非常适用于有关系实体(related entities)的场景。例如:客户和订单。

下面的场景非常适合使用本地数据库:
1、较多的关系表/实体,包含含有适量的记录(不大不小)
2、少数包含大量的记录或数据的表格
3、本地缓存的数据来自云计算
 
一个本地数据库有以下优点:
1、在数据库中使用复杂查询变得更加高效和快捷的能力
2、允许数据在特定的时刻加载到内存中(这句话实在不懂得怎么翻译才好)
3、可以做一些操作,比如:添加,移除,插入,删除,所有的这些操作都是通过SQL Compact runtime进行高效地处理
 
为了在windows phone中使用本地数据库,你需要注意下面步骤
1、实现所有数据库类:tables(表),columns(列),relations(关系),datacontext等
2、在IsolatedStorage中建一个新的数据库(.sdf)文件(默认情况下,数据库是空的)
3、在IsolatedStorage中使用数据填充这个数据库
 
在开始之前,你需要知道的关于SQL CE的8件事情
1、LINQ TO SQL 被用作ORM引擎
2、数据库文件存储在IsolatedStorage
3、LINQ常用作于查询数据,不支持T-SQL
4、不需要分配程序集以致增加应用程序的大小,对WindwosPhoneMango本地数据库的支持是Framework的一部分。
5、System.Data.Linq这一个程序集必须添加到项目中
6、使用一个特殊格式的连接字符串,比如这个例子:
"Data Source='isostore:/DIRECTORY/FILE.sdf'";
7、windows phone mango这个版本使用代码优先的方法来定义数据库模式是首选的,即此时没有视觉设计器来帮助开发者映射和配置他们用来处理数据库的类(所以你必须自己写下所有的类)。不过你可以使用一些工具,比如:使用SQLMetal来生成windows phone mango本地数据库的类,http://windowsphonegeek.com/articles/Using-SqlMetal-to-generate-Windows-Phone-Mango-Local-Database-classes
8、最小要求:Visual Studio 2010 SP1 and Windows Phone 7.1 Mango Developer Tools