您的位置:首页 > 数据库

LINQ to SQL

2018-04-03 17:21 211 查看

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的学生名字修改为“我的新名字”
但是数据库中依然没有改变,在执行[b]ExecuteQuery看浏览器的时候确实修改了[/b]
再次执行[b]ExecuteQuery查询所有用户名字后:[/b]




但是数据库里面依然是:


使用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>泛型接口表示具有单个返回序列的映射函数的结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息