
正文
WindowsPhone 8 开发 之 本地数据库应用
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
微软提供的有一个本地数据库的例子 http://code.msdn.microsoft.com/wpapps/Local-Database-Sample-57b1614c
可以进行参照。
里边最核心的就是DataContext
首先构造实体类
[Table]
public class Student
{
[Column]
public string Name { get; set; }
}
注意实体上要添加Table Attribute 以表明该实体映射到数据库的一个表上。
然后构造DataContext
public class MyDbContext:DataContext
{ public MyDbContext(string connstr):base(connstr)
{ } //注意这里是字段,而不是属性
public Table<Student> Students; }
这里边一定要注意的是 Students是一个字段,而不是属性,如果写成了属性,属性值会为null,具体为什么这么写,不太清楚。web上用惯了EF 这个地方是属性,导致我这个地方最开始写成了属性,一直报错,找了好久,才发现是这个地方的问题。
然后就是操作数据库的代码,使用的是Linq。
string constr = "Data Source=isostore:/mydb.sdf"; private void InitData()
{
initAppConext(); using (MyDbContext db=new MyDbContext(constr))
{
students = db.Students.ToList();
}
} private void initAppConext()
{
using (MyDbContext db = new MyDbContext(constr))
{
if (db.DatabaseExists() == false)
{
db.CreateDatabase();
db.Students.InsertOnSubmit(new Student { Name = "cjt" });
db.Students.InsertOnSubmit(new Student { Name = "cjt2" });
db.Students.InsertOnSubmit(new Student { Name = "cjt3" });
db.Students.InsertOnSubmit(new Student { Name = "cjt4" }); db.SubmitChanges();
}
} }
注意同EF一样,有个提交SubmitChanges().
至于显示,就是写上一个listbox,绑定ItemSource 属性即可。
另外,关于数据绑定有一些知识,会要求实体类实现INotifyPropertyChanged, INotifyPropertyChanging 两个接口。这里我们不讨论这个知识点,只对单纯的最简单的数据库操作进行说明。
其实,目前我还没有太明白数据绑定那一块。







