wp7独立存储之本地数据库
2012-04-17 22:13
197 查看
wp7可以在独立存储区里创建数据库,但并不是非常简单,起码对于silverlight里的Linq to sql 类来说算是复杂的了。
在silverlight里,可以先外面定义好数据库,然后通过linqtosql类自动在逻辑代码里映射出对应的实体类和上下文类;
而在wp7里,要先在逻辑代码里定义好实体类、上下文类,然后通过创建上下文类的实例来在独立存储区里创建数据库。
不废话,直接上代码,该说的都已经在注释里了:
View Code
在这里推荐一个管理wp7独立存储区的工具——isostoreSpy,这工具可是灰常强大,具体使用也很简单,有机会再说
在silverlight里,可以先外面定义好数据库,然后通过linqtosql类自动在逻辑代码里映射出对应的实体类和上下文类;
而在wp7里,要先在逻辑代码里定义好实体类、上下文类,然后通过创建上下文类的实例来在独立存储区里创建数据库。
不废话,直接上代码,该说的都已经在注释里了:
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using System.Data.Linq; using System.Data.Linq.Mapping; namespace IsoStore { public partial class MainPage : PhoneApplicationPage { //定义链接字符串。isostore:/ 表示位于独立存储区里 file.sdf 表示数据库的名字 static string connectionString = "Data Source='isostore:/file.sdf'"; // 构造函数 public MainPage() { InitializeComponent(); this.button1.Click += new RoutedEventHandler(button1_Click); //创建上下文类(数据链接)的实例——对应着具体的数据库 using(StuContext stuCent = new StuContext(connectionString)) { //stuCent.DeleteDatabase();删除数据库 //如果数据库不存在就创建 if (!stuCent.DatabaseExists()) { //创建数据库,同时创建数据库里的表 stuCent.CreateDatabase(); } } } void button1_Click(object sender, RoutedEventArgs e) { using (StuContext stuCent = new StuContext(connectionString)) { Stu stu1 = new Stu(); //实体类的一个实例,相当于数据库表里的一条数据 //给实体类的StuName赋值。StuID不用赋值,它是由数据库自动赋值的,IsDbGenerated = true stu1.StuName = "小白2号"; //把stu1插入到 Students表里。这一步只是插入到内存里的副本 stuCent.Students.InsertOnSubmit(stu1); //这里才是真正把对数据库的修改写进数据库 stuCent.SubmitChanges(); } } //定义一个实体类,数据库里每张表都要一个实体类相对应映射 //[Table(Name = "Student")] 表示该类映射成数据库里的一张表,表名为 student。 //如果Table没有Name特性,则用实体类的名字作为表名 [Table(Name = "Student")] public class Stu { //定义类的属性,映射到表的列。特性 IsPrimaryKey 表明是否为主键, //IsDbGenerated表示是否自增长(若值为true则有数据库自动赋值) [Column(IsPrimaryKey = true, IsDbGenerated = true)]// CanBeNull = false, AutoSync = AutoSync.OnInsert) public int StuID { set; get; } //定义类的属性 [Column(CanBeNull = true)] public string StuName { set; get; } } //定义上下文类,亦即是数据链接。该类的实例才是对应着具体的数据库 //该类继承DataContext,重点在于父类的内容,核心内容都在父类里实现了 public class StuContext:DataContext { //构造函数,同时调用基类构造函数,使用相同的链接字符串作为参数。 public StuContext(string connectionString) : base(connectionString) { } //定义属性。从该属性的类型可以明显看出这对应着数据库的一张表 public Table<Stu> Students; } } }
在这里推荐一个管理wp7独立存储区的工具——isostoreSpy,这工具可是灰常强大,具体使用也很简单,有机会再说
相关文章推荐
- Windows Phone 7独立存储之本地数据库
- WP7 开发工具 查看独立存储空间中数据库内容
- Windows Phone 7(WP7)开发工具 查看独立存储空间中数据库内容
- PHP独立Session数据库存储操作类分享
- <wp7查看独立存储工具>———2012年11月后仍可以工具
- H5本地存储-indexedDB数据库(二)创建对象仓库
- html5 本地存储-sessionStorage localStorage 本地数据库
- SqlServer数据库将另一个数据的的存储过程复制到本地数据库的方法
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- 调试存储过程或触发器时请先看看是本地数据库还是其它服务器
- 数据库的本地存储
- wp7用独立存储空间保存服务器图片和从独立存储空间读取图片
- 将数据从redis数据库中存储到本地的mysql数据库中
- WP7的独立存储
- 【HTML5初探之本地存储】如果没有数据库。。。
- Android第四十九期 - 仿QQ空间上传功能+本地数据库存储
- android SharedPreferences类存储路径、本地数据库路径
- android中的数据存储(SharePreferences,本地,和数据库)
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- 将数据从redis数据库中存储到本地的mongodb数据库中