Windows Phone 本地数据库
体系结构概述
LINQ to SQl 对象模型主要由System.Data.Linq.DataContext对象构成,可充当本地数据库的代理,LINQ to SQL 运行时负责桥接对象部分(DataContext对象)
和数据部分(本地数据库)
数据上下文
数据上下文是一种代理,一个代表数据库对象,数据上下文包含若干table对象,其中的每一个对象都有示数据库中的一个表
LINQ to SQL 运行时
LINQ TO SQL 提供了一些对象关系映射功能,托管应用可通过这些功能使用语言集成查询(LINQ)与关系数据库的(仅指Transact-SQl)进行通信
导同点
本地数据库将会在Windows Phone 应用的进程中运行
本地数据库仅可由对应的Windows Phone应用访问
本地数据库仅可以通过LINQ To Sql 访问
应用开发
若要创建本地数据库,必须首先定义数据库上下文和实本,这些类定义数据对象模型和数据库架构之间的映射
Linq To SQl的对象关系功能根据这些映射详细信息来创建映射到对应数据上下文的关系数据库
常见LINQ TO SQL映射属性
TableAttribute [Table] 将某个类指定为与数据库表关联的实体类
ColumnAttribute [Column(IsPrimaryKey=true)]] 将某个类与数据库中的列关联,IsPrimaryKey指定主键,默认情况下会为其创建一个索引
IndexAttribute [Index(Columns="Column1,Column2, DESC", Isquique=true, Name="MultiColumnIndex")]
在表级别写入,指定表上的其他索引,每个索引都可涵盖一个或多个列
AssociationAttribute
[Association(Storage="ThisEntityRefName", ThisKey="ThisEntityID", OtherKey="TargetEntityID")]
指定用于表示关联的属性,例如表示主键关联的外键。
使用数据库
在本地数据库创建之后,您可以使用LINQ和数据库上下文本处理本地数据库
选择数据(数据库查询)
var toDoitemsInDB = from ToDoItem todo in toDoDB.ToDoItems select todo;
ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);
插入数据库
ToDoItem newToDo = new ToDoItem{ItemName = newToDoTextBox.Text};
ToDoItems.Add(newToDo);
toDoDB.ToDoItems.InsertOnSubmit(newToDo);
更新数库
var query = from Items in toDoDB.Items where Items._categoryId == 11000
select Items;
foreach (ToDoItem Items in query){
Items.ItemName = toDoForUpdate.ItemName;
}
try{
toDoDB.SubmitChanges();
}catch (Exception e){
Console.WriteLine(e);
}
删除
ToDoItem toDoForDelete = button.DataContext as ToDoItem;
ToDoItems.Remove(toDoForDelete);
toDoDB.ToDoItems.DeleteOnSubmit(toDoForDelete);
toDoDB.SubmitChanges();
更改数据库架构
http://msdn.microsoft.com/zh-CN/library/windowsphone/develop/hh394022(v=vs.105).aspx
更新Windows Phone本地数据库应用
数据库安全性
接《《Windows Phone 的数据》》
安装本地文件
文地文件夹
本地文件夹是应用程序数据存储的根文件夹,本地文件夹在Windows phone 中称为独立存储,它独立于其他应用程序
DataContext 本地数据库文件存储在本地文件夹中
lsolaedStorageSettings 使用本地文件夹中的键、值对
例: 《《如何为 Windows Phone 创建设置页面》》
创建设置类
创建不需要确认按钮的设置页面
创建需要确认按钮的设置页面======这里没有修改成功,因为不知道如何在修改时访问AppSetting