这是“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. 1 public class CountryDataContext : DataContext
  2. 2 {
  3. 3 public CountryDataContext(string connectionString)
  4. 4 : base(connectionString)
  5. 5 {
  6. 6 }
  7. 7
  8. 8 public Table<Country> Countries
  9. 9 {
  10. 10 get
  11. 11 {
  12. 12 return this.GetTable<Country>();
  13. 13 }
  14. 14 }
  15. 15
  16. 16 public Table<City> Cities
  17. 17 {
  18. 18 get
  19. 19 {
  20. 20 return this.GetTable<City>();
  21. 21 }
  22. 22 }
  23. 23 }

3、怎么使用DataContext

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

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

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

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

Windows Phone本地数据库(SQLCE):8、DataContext(翻译)的更多相关文章

  1. Windows Phone本地数据库(SQLCE):11、使用LINQ查询数据库(翻译) (转)

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

  2. Windows Phone本地数据库(SQLCE):2、LINQ to SQL(翻译)(转)

    首先.要说到的是,windows phone 7.1上基本的数据库功能是SQL Compact关于Mango的一个实现,使用linq to sql访问存储在数据库上的数据.   1.LINQ to S ...

  3. Windows Phone本地数据库(SQLCE):1、介绍(翻译)(转)

    一只大菜鸟,最近要学习windows phone数据库相关的知识,找到了一些比较简短的教程进行学习,由于是英文的,顺便给翻译了.本身英语水平就不好,估计文中有不少错误,如果有不幸读到的童鞋请保持对翻译 ...

  4. Windows Phone本地数据库(SQLCE):14、删除数据(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的最后一篇第十四篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需 ...

  5. Windows Phone本地数据库(SQLCE):13、更新数据(翻译)

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

  6. Windows Phone本地数据库(SQLCE):12、插入数据(翻译)

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

  7. Windows Phone本地数据库(SQLCE):10、创建数据库(翻译) (转)

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

  8. Windows Phone本地数据库(SQLCE):7、Database mapping(翻译)

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

  9. Windows Phone本地数据库(SQLCE):4、[Column]attribute(翻译) (转)

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

随机推荐

  1. android的USB MTP && USB CDC/USBnet(ECM, NCM, ACM) && USB gardget

    MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议.早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Pictu ...

  2. Bogus URL svn: is not properly URI-encoded

    问题描述: 从浏览器地址栏复制出来的url   放到eclipse 的svn插件里,新建资源库位置 总是报错 Bogus URL svn: **********************  is not ...

  3. WPF 中定时器的使用

    DispatcherTimer timer; private void Window_Loaded(object sender, RoutedEventArgs e) { timer = new Di ...

  4. 关于spring中Assert的应用(方法入参检测工具类)

    关于spring中Assert的应用(方法入参检测工具类) Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回.类似的,当我们在编写类的方法时,也常常需要对方 ...

  5. sublime sftp 打开远程文件夹

    2014-04-29 13:19:09 总结: 本文介绍两种方法,推荐第二种方法(samba+windows映射) 先贴出sublime打开远程(Linux)目录所需的配置文件(sublime是通过s ...

  6. MVC Autofac依赖注入

    通过Dll实现全部类的属性注入,该演示实例主要通过多层架构中单一的对象方式来演示,没有采取接口的方式, 新建AutoFacHelper类,如下代码: public class AutoFacHelpe ...

  7. Polly公共处理 -重试(Retry)

    封装处理下Polly重试 private ILogger<PollyHelper> _logger; /// <summary> /// /// </summary> ...

  8. mysql 账号授权

    一.移除权限 revoke all privileges on py_bond_2_1.* from pycf@"%"; flush privileges; 二.添加用户并授权 g ...

  9. shell编程快速入门及实战

    shell编程:对于hadoop程序员,通常需要熟悉shell编程,因为shell可以非常方便的运行程序代码. 1.shell文件格式:xxx.sh #!/bin/sh ---shell文件第一行必须 ...

  10. streaming优化:禁用序列化

    如果你的streaming处理数据的时间间隔比较小,并且没有窗口操作,那么可以考虑不使用序列化,这样可以减少内存和cpu的使用,加快数据处理效率