目录
 
文章目录
 
 
 ###一、《SQL Server本地数据库基本操作》课程大纲 
 
- 课程目标:
 理解SQL Server本地数据库的基本操作,能够使用SQL Server数据库实现数据表之间的关联。
- 重点难点:
 数据库的增删改操作和数据表的设计
- 考核目标:
 SQL Server本地数据库有哪些特点?
 表Table和数据上下文DataContext的关系?
 怎样去定义数据表的各种属性的影射?如何实现表之前的关联关系?
 如何实现数据库的增删改查的操作?
- 课后练习:
 用SQL Server本地数据库存储实现一个简单的记事本的功能
###二、《SQL Server本地数据库基本操作》
 ####(一)SQL Server本地数据库的原理
 #####1.数据存储在程序隔离的本地存储里面
 ######(1)本地数据库将会在Windows Phone应用的进程中运行
 它并不像一些关系数据库那样存在云端上的一个服务器上。当我们打开程序运行的时候,SQL Server本地数据库也开始运行,他并不是在
 ######(2)本地数据库仅可由对应的Windows Phone应用访问
 ######(3)本地数据库仅可通过LINQ to SQL访问
 #####2.面向对象
 ######(1)所有的数据都用对象来表示
 ######(2)LINQ to SQL操作数据库的增删改查
 ####(二)主要的概念
 #####1、表table
 ######(1)代表数据库中的表,与关系数据库的表一致
 ######(2)泛型表示System.Data.Linq.Table < TEntity>,TEntity表示表的实体类
 ######(3)每一个Table对象由对应数据库中数据行的实体所组成
 #####2、数据上下文DataContext
 ######(1)代表数据库的对象
 ######(2)数据上下文包含若干Table对象,其中的每一个对象都表示数据库中的一个表
 ####(三)数据库的操作
 #####1.定义数据表
 ######(1)数据表是一个实体类
 ######(2)通过LINQ to SQL映射属性来定义数据表的字段
 ######(3)基于属性的映射
a.DatabaseAttribute属性:
 指定在连接未提供名称时数据库的默认名称,可选。Name属性用于指定数据库的名称
b.TableAttribute属性:
 将类指定为与数据库表或视图关联的实体类。Name默认与类名相同的字符串,将类指定与数据库表关联的实体类
c.ColumnAttribute属性:
 指定实体类的某个成员表示数据库表中的列Column(IsPrimaryKey=true)指定主键。
不具有此属性的成员被假定为非持久的,且不会被提交以进行插入或更新
d.AssociationAttribute属性:
 表示数据库中的关联,如外键对主键关系。此属性与EntitySet< TEntity>和EntityRef< TEntity>类型一起使用,来表示将作为数据库中的外键关系的维护。
Storage属性:获取或设置私有存储字段以保存列中的值
OtherKey:将目标实体类的一个或多个成员指定为关联的另一端上的键值
ThisKey:指定此实体类的成员表示关联的此端上的键值
三种关系:
 一对多
 一对一:
 通过向双方添加EntitySet< TEntity>来表示此类关系
 多对多:
 在多对多关系中,链接表(也称作联结表)的主键通常由来自其他连个表的外键组合而成。
e.IndexAttribute属性:
 指定本地数据库表上的其他索引
 [Index(Columns=“Column1,Column2 DESC”,IsUnique=true,Name=“MultiColumnIndex”)]
 索引所基于的列
 该值指示索引是否唯一
 获取或设置索引的名称
 ######(4)实现属性改变通知事件
 继承实现接口INotifyPropertyChanged,INotifyPropertyChanging
 #####2.定义DataContext对象
 ######(1)从DataContext类派生
 ######(2)添加表
 #####3.创建数据库
 ######(1)定义连接的数据库字符串
 ######(2)判断数据库是否存在
 ######(3)创建数据库
 #####4.操作数据库
 ######(1)插入数据
 数据插入数据库的过程分为两个步骤。首先在数据上下文中添加一个对象,然后调用数据上下文SubmitChanges方法将数据保存为数据库中的一行
 ToDoItem newToDo=new ToDoItem{ItemName=newToDoTextBox.Text};
 ToDoItems.Add(newToDo);
 toDoDB.ToDoItems.InsertOnSubmit(newToDo);
 ######(2)数据库查询
 ######(3)删除数据
 a.在数据库中查询要删除的对象
 b.删除一个DeleteOnSubmit
 c.删除多个对象DeleteAllOnSubmit
 d.调用数据上下文SubmitChanges方法
 ######(4)修改数据
 a.在数据库中查询要更新的对象
 b.按需要修改对象
 c.调用数据上下文SubmitChanges方法
                










