zoukankan      html  css  js  c++  java
  • WindowsPhone 8 开发 之 本地数据库应用

    微软提供的有一个本地数据库的例子 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 两个接口。这里我们不讨论这个知识点,只对单纯的最简单的数据库操作进行说明。

    其实,目前我还没有太明白数据绑定那一块。

  • 相关阅读:
    Win7双击任务栏图标导致窗口还原的问题
    一致性哈希算法及其在分布式系统中的应用(转)
    CAP理论(转)
    从Android界面开发谈起(转)
    Android开发入门之Window 环境概念介绍(转)
    数据库缓存技术(转)
    VoltDB开篇 简介(转)
    window下如何让php支持openssl(转)
    mysql分表的3种方法(转)
    linux crontab 每10秒执行一次
  • 原文地址:https://www.cnblogs.com/linecheng/p/3175959.html
Copyright © 2011-2022 走看看