/// <summary>
/// EF添加数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
tb_one user = new tb_one();
user.Name = "测试一";
user.sex = true;
user.Address = "广东东莞市南城街道";
user.Aihao = "敲代码";
user.Photo = "/images/icon.png";
tb_qrcodeEntities db = new tb_qrcodeEntities();//EF上下文对象
db.tb_one.Add(user);//把数据添加到EF且添加添加标记
db.SaveChanges();//保存到数据库,返回受影响的行
Response.Write(user.ID);//自增编号
}
/// <summary>
/// EF数据查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnSearch_Click(object sender, EventArgs e)
{
tb_qrcodeEntities db = new tb_qrcodeEntities();//EF上下文对象
//var
IQueryable<tb_one> user = from u in db.tb_one
where u.ID == 1
select u;
foreach (var userInfo in user)//EF延时加载机制,用到的时候才去查询
{
Response.Write(userInfo.Name);
}
}
/// <summary>
/// EF查询部分列
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
Model2Container db = new Model2Container();//EF上下文对象
var userInfoList = from u in db.Customer
where u.ID == 1
select new{Uname=u.CustomerName,Upwd=u.CustomerPwd };
foreach (var userInfo in userInfoList)
{
Response.Write(userInfo.Uname + ":" + userInfo.Upwd);
}
}
/// <summary>
/// EF lambda表达式查询 分页查询 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
//lambda表达式方式查询
Model2Container db = new Model2Container();//EF上下文对象
//查询编号==33的所有数据
var userInfoList = db.Customer.Where<Customer>(u => u.ID == 33);
//升序排序
var userInfoList = db.Customer.Where<Customer>(U => true).OrderBy<Customer, int>(u => u.ID);
//降序排序
var userInfoList = db.Customer.Where<Customer>(U => true).OrderByDescending(u => u.ID);
//分页查询
int pageIndex = 2;//查询第二页
int pageSize = 2;//每页显示两条数据
//lambda分页查询===skip:表示跳过多少条记录,take:取多少条记录
var userInfoList = db.Customer.Where<Customer>(U => true).OrderByDescending(u => u.ID).Skip<Customer>((pageIndex - 1) * pageSize).Take<Customer>(pageSize);
//linq分页查询===skip:表示跳过多少条记录,take:取多少条记录
var userInfoList = (from u in db.Customer
where u.ID > 100
orderby u.ID descending
select u).Skip<Customer>((pageIndex - 1) * pageSize).Take<Customer>(pageSize);
foreach (var userInfo in userInfoList)
{
Response.Write(userInfo.CustomerName);
}
}
/// <summary>
/// EF删除数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDelete_Click(object sender, EventArgs e)
{
//第一种方法:先查出要删除的对象,再更新删除
tb_qrcodeEntities db = new tb_qrcodeEntities();//EF上下文对象
var userList = from u in db.tb_one
where u.ID == 1
select u;
tb_one userInfo = userList.FirstOrDefault();//返回查找到的第一个元素
if (userInfo != null)
{
//db.tb_one.Remove(userInfo);
db.Entry<tb_one>(userInfo).State = System.Data.EntityState.Deleted;
db.SaveChanges();
}
else {
Response.Write("要删除的数据不存在!");
}
//第二种方法:根据ID删除
tb_one userinfo1 = new tb_one() { ID=2};
db.Entry<tb_one>(userinfo1).State = System.Data.EntityState.Deleted;
db.SaveChanges();
}
/// <summary>
/// 删除指定会员的订单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDel_Click(object sender, EventArgs e)
{
//第一种方法:先查找出来再删除
Model2Container db = new Model2Container();//EF上下文对象
var orderInfoList = from u in db.OrderInfo
where u.CustomerID == 3
select u;
foreach (var orderInfo in orderInfoList)
{
db.Entry<OrderInfo>(orderInfo).State = System.Data.EntityState.Deleted;
}
db.SaveChanges();
Response.Write("delete success!!!");
//第二种方法
Model2Container db = new Model2Container();//EF上下文对象
var Customer = (from u in db.Customer
where u.ID == 2
select u).FirstOrDefault();
var orderInfoList = Customer.OrderInfo;
while (orderInfoList.Count > 0)
{
var orderInfo = orderInfoList.FirstOrDefault();
db.Entry<OrderInfo>(orderInfo).State = System.Data.EntityState.Deleted;
}
db.SaveChanges();
Response.Write("delete success!!!");
}
/// <summary>
/// EF编辑数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnEdit_Click(object sender, EventArgs e)
{
tb_qrcodeEntities db = new tb_qrcodeEntities();//EF上下文对象
var userList = from u in db.tb_one
where u.ID == 1
select u;
tb_one userInfo = userList.FirstOrDefault();
if (userInfo != null)
{
userInfo.Name = "qrcode";
db.Entry<tb_one>(userInfo).State = System.Data.EntityState.Modified;
db.SaveChanges();
}
}