这是WindowsPhone Mango本地数据库(SQL CE)系列文章的第二篇文章,这篇文章将会讲解Windows Phone 7.1 Mango本地数据库中的Linq to SQL。
什么是Linqto SQL?
Linq to SQL是一种O/RM(对象关系映射)框架,他来自于.NET框架中的一部分。它可以使我们将业务对象(model class)映射到数据库表中,然后访问/查询本地数据库数据不需要写任何SQL代码。随着Mango的升级,Linq to SQL已经可以在Windows Phone手机中使用了。
使用Linq to SQL你可以:
映射业务对象到数据库表中。
使用Linq查询数据库。
使用Linq to SQL APIs向数据库插入数据。
使用Linq to SQL APIs向数据库更新数据。
使用Linq to SQL APIs向数据库删除数据。
然而Windows Phone所支持的大多Linq to SQL特性是有限制的。你可以参考MSDN文档中的介绍:WindowsPhone 支持的Linq to SQL。以下列出部分内容:
不支持ExecuteCommand :Windows Phone不支持执行原生Transact-SQL, Data Definition Language (DDL), 或 Data Modeling Language (DML) 声明.
不支持ADO.NET 对象(比如 DataReader) :所有来自Linq to SQL所查询的数据都以一个有明确类型的集合对象形式进行返回。
只支持微软的SQL Server Compact Edition (SQL CE) 数据类型:SQL CE对于本地数据库来说是一个非常基础的数据库技术。要查看所有SQL CE数据类型列表请参照:DataTypes(SQL Server Compact)。
不支持BinaryFormatter :要将自定义类型转化为SQL Server Binary或VarBinary 数据类型,你的data cotext属性可以实现一个Linq to SQL 自定义类型或是byte[]类型或System.Data.Linq.Binary。要实现Linq to SQL自定义类型,首先要创建一个自定义类,该类实现了ToString()和Parse()方法。然后使用这个类作为你的Data Context中的一个属性。Linq to SQL可以将自定义类型映射到任意SQL Server字符串类型之上,比如Char,NChar,NChar,NVarChar,Text和ML.