增成功后EF容器里面的实体不会被销毁
//1.0 创建实体 BlogUser usrModel = new BlogUser() { LoginName = "xiaobai1", LoginPwd = "4297F44B13955235245B2497399D7A93", CnName = "小白", Email = "xiaobai@oumind.com", IsDel = false, IsLock = 0, AddTime = DateTime.Now, LastLoginIP = "127.0.0.1", LastLoginTime = DateTime.Now }; //2.0 调用EF容器,向指定的 属性中(表) 添加实体对象 db.BlogUsers.Add(usrModel); //3.0 调用EF容器的 SaveChanges方法,将容器里的对象 保存到数据库,并返回受影响行数! int resCount = db.SaveChanges(); //4.0 新增后,主键属性Id,会被赋值(新增后的id) MessageBox.Show(usrModel.Id.ToString());
1 批量添加 2 //1.0 创建实体1 3 BlogUser usrModel = new BlogUser() 4 { 5 LoginName = "xiaobai2", 6 LoginPwd = "4297F44B13955235245B2497399D7A93", 7 CnName = "小白2", 8 Email = "xiaobai2@oumind.com", 9 IsDel = false, 10 IsLock = 0, 11 AddTime = DateTime.Now, 12 LastLoginIP = "127.0.0.1", 13 LastLoginTime = DateTime.Now 14 }; 15 16 //1.0 创建实体2 17 BlogUser usrModel2 = new BlogUser() 18 { 19 LoginName = "xiaobai3", 20 LoginPwd = "4297F44B13955235245B2497399D7A93", 21 CnName = "小白3", 22 Email = "xiaobai3@oumind.com", 23 IsDel = false, 24 IsLock = 0, 25 AddTime = DateTime.Now, 26 LastLoginIP = "127.0.0.1", 27 LastLoginTime = DateTime.Now 28 }; 29 30 db.BlogUsers.Add(usrModel); 31 db.BlogUsers.Add(usrModel2); 32 int resCount = db.SaveChanges(); 33 MessageBox.Show("受影响行数:" + resCount);
1 #region 5.0 Ef 删除 的3中方式 2 private void btnDel_Click(object sender, EventArgs e) 3 { 4 //1.0 EF 推荐删除方式 - 先查,再删 5 ////1.1 先根据id查询 出 要删除的 对象(存入EF容器) 6 //BlogUser usr = db.BlogUsers.Where(u => u.Id == 45).FirstOrDefault(); 7 ////1.2 将实体对象删除(就是将 容器中的 代理对象的 State改成 Deleted) 8 //db.BlogUsers.Remove(usr); 9 ////1.3 将EF容器里所有的对象 根据 State 属性值,生成不同sql语句,更新到数据库 10 //db.SaveChanges(); 11 12 //2.0 使用 Attach + Remove Id = 2051 13 //BlogUser usr = new BlogUser() { Id = 2051 };//会根据指定主键删除(也只能根据指定id删除) 14 ////2.1 将对象 附加到 EF容器中 15 //db.BlogUsers.Attach(usr);//State=Unchanged 16 //db.BlogUsers.Remove(usr);//State=Deleted 17 //db.SaveChanges(); 18 19 //3.0 手动 设置删除 20 BlogUser usr = new BlogUser() { Id = 2052 }; 21 //3.1将对象加入 EF容器,并返回 代理对象里的跟踪器 22 DbEntityEntry entry = db.Entry(usr);//State=unchanged 23 //3.2将代理对象的状态 改成 删除状态 24 entry.State = EntityState.Deleted; 25 //3.3保存 26 db.SaveChanges(); 27 } 28 #endregion
1 //1.0 先按照条件查询 2 var list = db.BlogUsers.Where(u => u.IsDel == true).ToList(); 3 //2.0 遍历集合,将 要删除的 对象 的代理对象的State 设置为 Deleted 4 list.ForEach(u => db.BlogUsers.Remove(u)); 5 //3.0 执行更新 6 int resCount = db.SaveChanges(); 7 //4.0 获取受影响行数 8 MessageBox.Show("删除行数:" + resCount);
原文:http://www.cnblogs.com/huanglexian/p/3593100.html