1.在VS2010使用Linq to SQL
1.1创建3.5版本的asp网页
添加数据--Linq to SQL类
将数据库中的表拖动到dbml中
到这里就可以在vs2010中使用Linq to SQL 了哦。
2.DataContext数据上下文
- 执行非查询语句的 ExecuteQuery()方法
private void ExecuteSqlQuery()
{
//创建LinqDB 数据库上下文的实例
TestDataContext db = new TestDataContext();
//创建SQL 语句
string sql = "SELECT TOP 5 * FROM UserInfo";
IEnumerable<UserInfo> users
= db.ExecuteQuery<UserInfo>(sql);
//显示查询的结果
foreach (UserInfo u in users)
{
Response.Write("用户名称:" + u.Username + "<br/>");
}
}
运行到浏览器:
- 执行查询语句的 Execute Command()方法
protected void Page_Load(object sender, EventArgs e)
{
TestDataContext db = new TestDataContext();
string sql = "update userInfo set UserName={0} where id=7";
int num = db.ExecuteCommand(sql, "我的新名字");
Response.Write(num.ToString() + "行受影响!");
}
到浏览器的结果为:
- 提交更改到数据库的 Submitchanges()方法
Submitchanges()是将更改的数据上传到数据库
在Execute Command例子中将学号为7的学生名字修改为“我的新名字”
但是数据库中依然没有改变,在执行ExecuteQuery看浏览器的时候确实修改了
再次执行ExecuteQuery查询所有用户名字后:
但是数据库里面依然是:
使用submitchanges()后数据库也一共更改。
3.Table<T>泛型接口
- 使用Table<T>能够方便的操作数据库中的数据
- DeleteOnSubmit()此表中的实体置于ending delete
- InsertAllOnSubmit(TSubEntity)将集合中的所有处于Pending insert状态的实体添加到DataContext
- InsertOnSubmit()将处于Pending insert状态的实体添加到Table<TEntity>
protected void Page_Load(object sender, EventArgs e)
{
//实例化datacontext
Test_1DataContext db = new Test_1DataContext();
//打印添加前的角色数量
Response.Write("添加前的角色数量" + db.UserRole.Count() + "<br>");
//创建一个角色实体
Role role = new Role() { RoleName = "我是新角色" };
//将角色实体添加到table<T>
db.Role.InsertOnSubmit(role);
//将数据提交到数据库
db.SubmitChanges();
//打印添加后的角色数量
Response.Write("添加后的角色数量" + db.UserRole.Count() + "<br>");
}
运行到浏览器之后就是:
4.EntitySet<T>泛型接口
- Add()方法能够将元素或实体添加到EntitySet<T>集合末尾
- Remove()方法能够从EntitySet<T>中移除指定的元素或实体
- RemoveAt()方法能够从EntitySet<T>中移除指定位置处的元素或实体
- Contains()方法能够判断在EntitySet<T>中是否包含指定的元素或实体
5.EntityRef<T>泛型接口
EntityRef<T>处理一对多关系中的数据
6.IsingResult<T>泛型接口
ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果