zoukankan      html  css  js  c++  java
  • Windows Phone本地数据库(SQLCE):8、DataContext(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第八篇。 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知识点。我将谈谈在windows phone mango本地数据库中使用DataContext的问题。

    1、DataContext是什么

    DataContext的用途是以面向对象的方式来显示数据库到其余的代码上。DataContext有三个重要的特点:
    (1)它从System.Data.Linq.DataContext继承类
    (2)DataContext构造函数必须调用base(connectionString) 构造函数(基类构造函数)
    (3)DataContext通过类型Table<TEntity>(例:Table<City>)的属性来显示数据库上的表。这个表类实现IQueriable<TEntity>,并且让你能够编写LINQ查询来查询数据库。
     

    2、怎么创建DataContext

    为了创建一个本地数据库,首先你必须定义DataContext和实体类。这些类定义了数据的对象模型和数据库模式之间的映射。LINQ to SQL的对象关系能力取决于映射的详细信息,映射的详细信息是为了创建一个关系数据库映射到对应的DataContext。
    示例:
    复制代码
     1 public class CountryDataContext : DataContext
     2  {
     3      public CountryDataContext(string connectionString)
     4          : base(connectionString)
     5      {
     6      }
     7    
     8      public Table<Country> Countries
     9      {
    10          get
    11          {
    12              return this.GetTable<Country>();
    13          }
    14      }
    15    
    16      public Table<City> Cities
    17      {
    18          get
    19          {
    20              return this.GetTable<City>();
    21          }
    22      }
    23  }
    复制代码

    3、怎么使用DataContext

    检查数据库是否存在非常重要,如果不存在,你必须创建它。看示例:
    复制代码
     1 public MainPage()
     2  {
     3      InitializeComponent();
     4    
     5      using (CountryDataContext context = new CountryDataContext(ConnectionString))
     6      {
     7    
     8          if (!context.DatabaseExists())
     9          {
    10              // create database if it does not exist
    11              context.CreateDatabase();
    12          }
    13      }
    14  } 
    复制代码

    现在你有context,并且数据库已经创建好了。你可以像示例里那样查询:

    1 var query = from c in context.City where p.Name ="London" select p;

       这篇文章我讨论了在windows phone mango 本地数据库中的DataContext,并且如何使用它们。请继续关注接下来的文章。

  • 相关阅读:
    (转)AS3中实现卡马克卷轴算法
    (转)flash位图缓存cacheAsBitmap
    (转)addFrameScript函数的纠结
    (转)flash安全策略文件
    (转)脏矩形技术学习
    (转)stopImmediatePropagation 和stopPropagation的区别
    (转)flash对象池技术
    揭开嵌入式C面试题背后的玄机
    一次遍历找链表倒数第n个节点
    N!的尾部连续0的个数
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/3838265.html
Copyright © 2011-2022 走看看