1、关于EF跟新数据库更新指定字段的设置
在EF提交到数据库的时候或许某些字段不想更新、或者自己更新一个模型到数据库去!
1、更新数据不更新一些字段
/// <summary> /// 数据库指定更新字段 /// </summary> [HttpGet] public HttpResponseMessage alterUserInfo(int id) { //先查询 后修改 var user = DbContent.k_user.Where(o => o.id == id).FirstOrDefault(); user.name = "周"; //这个属性不想 提交到数据库 修改 user.age = 1; //设置容器空间某一个模型的某一个字段 不提交到数据库 //DbContent.Entry是要更新到数据库的整个对象 DbContent.Entry<k_user>(user).Property("age").IsModified = false; DbContent.SaveChanges(); return returnStringData(user.name); }
2、直接添加模型更新
[HttpGet] public HttpResponseMessage alterUserInfo(int id) { //直接创建对象修改到数据库 不用先查询 k_user user = new k_user() { id = id, name ="周", age=1, }; //将实体对象加入EF对象容器中 获取容器对象 DbEntityEntry<k_user> entry = DbContent.Entry<k_user>(user); //容器对象状态设置为unchanged entry.State = System.Data.EntityState.Unchanged; //设置被改变的属性 是否要提交到数据库 的字段 entry.Property(a=>a.name).IsModified = true; entry.Property(a => a.age).IsModified = true; DbContent.SaveChanges(); return returnStringData(user.name); }