WindowsPhone 8 开发 之 本地数据库应用
2013-07-07 12:22 Shawn.Cheng 阅读(353) 评论(0) 编辑 收藏 举报微软提供的有一个本地数据库的例子 http://code.msdn.microsoft.com/wpapps/Local-Database-Sample-57b1614c
可以进行参照。
里边最核心的就是DataContext
首先构造实体类
1 [Table] 2 public class Student 3 { 4 [Column] 5 public string Name { get; set; } 6 }
注意实体上要添加Table Attribute 以表明该实体映射到数据库的一个表上。
然后构造DataContext
1 public class MyDbContext:DataContext 2 { 3 4 public MyDbContext(string connstr):base(connstr) 5 { 6 7 } 8 9 //注意这里是字段,而不是属性 10 public Table<Student> Students; 11 12 }
这里边一定要注意的是 Students是一个字段,而不是属性,如果写成了属性,属性值会为null,具体为什么这么写,不太清楚。web上用惯了EF 这个地方是属性,导致我这个地方最开始写成了属性,一直报错,找了好久,才发现是这个地方的问题。
然后就是操作数据库的代码,使用的是Linq。
1 string constr = "Data Source=isostore:/mydb.sdf"; 2 3 private void InitData() 4 { 5 initAppConext(); 6 7 using (MyDbContext db=new MyDbContext(constr)) 8 { 9 students = db.Students.ToList(); 10 } 11 } 12 13 private void initAppConext() 14 { 15 using (MyDbContext db = new MyDbContext(constr)) 16 { 17 if (db.DatabaseExists() == false) 18 { 19 db.CreateDatabase(); 20 db.Students.InsertOnSubmit(new Student { Name = "cjt" }); 21 db.Students.InsertOnSubmit(new Student { Name = "cjt2" }); 22 db.Students.InsertOnSubmit(new Student { Name = "cjt3" }); 23 db.Students.InsertOnSubmit(new Student { Name = "cjt4" }); 24 25 db.SubmitChanges(); 26 } 27 } 28 29 }
注意同EF一样,有个提交SubmitChanges().
至于显示,就是写上一个listbox,绑定ItemSource 属性即可。
另外,关于数据绑定有一些知识,会要求实体类实现INotifyPropertyChanged, INotifyPropertyChanging 两个接口。这里我们不讨论这个知识点,只对单纯的最简单的数据库操作进行说明。
其实,目前我还没有太明白数据绑定那一块。