EF框架的处理过程
/// <summary>
/// 这个按钮控制的是增添数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
studentInfo studentInfo = new studentInfo();
studentInfo.stuName = "杰尼龟";
studentInfo.stuGender = true;
studentInfo.stuAge = 12;
studentInfo.stuPwd = "123";
//1.起到一个桥梁的作用,让这个映射的类来执行一系列对数据库的操作
testMISEntities db = new testMISEntities();
//2.将数据添加到EF并添加了标记
db.studentInfo.Add(studentInfo);
//3.执行到db.SaveChanges();数据才会保存到数据库,并返回受影响的函数
db.SaveChanges();
//上面这些代码读取xml的映射关系
//可以读取studenInfo的id
Response.Write(studentInfo.stuId);
}
/// <summary>
/// 这个按钮是查询语句(内容写死了)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Select_Click(object sender, EventArgs e)
{
testMISEntities db = new testMISEntities();
//linq表达式
//这个var实际上是IQueryable<studentInfo>,为了不那么麻烦所以用了var代替
//结果不是单单一个,所以是个泛型集合
var studentInfoList = from u in db.studentInfo
where u.stuId == 1
select u;
foreach (var studentInfo in studentInfoList)
//延迟加载机制:数据用到的时候才去数据库中查询
//这个var其实就是
{
Response.Write(studentInfo.stuName);
}
//对于上诉linq表达式的解析
//select * from userInfo where stuId=3;
//from studentInfo
//where stuId==3
//select *
}
protected void Delete_Click(object sender, EventArgs e)
{
testMISEntities db = new testMISEntities();
var studentInfoList = from u in db.studentInfo
where u.stuId == 3
select u;
//1.FirstOrDefault()这个是返回序列中的第一个元素或默认值
//默认值是null
studentInfo stuInfo= studentInfoList.FirstOrDefault();
//1.First()这个是返回序列中的第一个元素,为空时会抛异常
studentInfo stuInfo2 = studentInfoList.First();
//1.First()这个是返回序列中的唯一一个元素,不唯一时会抛异常
studentInfo stuInfo3 = studentInfoList.SingleOrDefault();
if (stuInfo != null)
{
db.studentInfo.Remove(stuInfo);
//这个Remove方法得先找到这个元素(stuInfo),也就是第1步的.First()方法
//打上一个删除标记,并未直接删除,还需调用saveChanges()方法
db.Entry<studentInfo>(stuInfo).State =
System.Data.EntityState.Deleted;
//这个entry是直接找到了这个元素,并修改状态
//也是打上一个删除标记,并未直接删除,还需调用saveChanges()方法
db.SaveChanges();
Response.Write("删除成功!!");
}
else
{
Response.Write("要删除的数据不存在!!");
}
}
/// <summary>
/// 修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Adoul_Click(object sender, EventArgs e)
{
testMISEntities db = new testMISEntities();
var stuInfoList = from u in db.studentInfo
where u.stuId == 3
select u;
var stuInfo = stuInfoList.FirstOrDefault();
stuInfo.stuName = "胡迪";
db.Entry<studentInfo>(stuInfo).State = System.Data.EntityState.Modified;//状态变为修改
db.SaveChanges();
Response.Write("修改成功");
}