修改删除,EF4的修改跟删除

最近做个一个EntityFramework的DEMO,刚开始做的时候在删除跟修改数据时采取的是根据ID查询到对应实体,然后再删除和更新实体,发现这样做多查询了一次数据库。尤其是做修改的时候,还得每个属性进行赋值修改,加大了代码量。 因此寻找另一条出路,思路大概是这样的:首先获取需要修改或者删除的对象,根据EntityKey判断上下文中是否存在,假如存在,则移除上下文中的对象。然后把获取到的对象附加到对象上下文中,再将上下文更新保存的数据库。
修改删除,EF4的修改跟删除修改删除,EF4的修改跟删除View Code 1 public void Update(Student entity) 2 { 3 entity.EntityKey = Session.CreateEntityKey("Students", entity); 4 object s=new Student(); 5 if (Session.TryGetObjectByKey(entity.EntityKey, out s)) 6 { 7 Session.ObjectStateManager.ChangeObjectState(s, System.Data.EntityState.Deleted); 8 Session.Detach(s); 9 } 10 Session.Attach(entity); 11 Session.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); 12 Session.SaveChanges(); 13 public void Delete(Student entity) { entity.EntityKey = Session.CreateEntityKey("Students", entity); object s = new Student(); if (Session.TryGetObjectByKey(entity.EntityKey, out s)) { Session.Students.DeleteObject((Student)s); } else { Session.AttachTo("Students", entity); Session.Students.DeleteObject(entity); } Session.SaveChanges(); }
}
此代码可能存在着各种漏洞。大家有什么好的方法可以回复。小弟先在此谢谢了。。。
Tags:  删除的快捷键 删除的英文 删除修改痕迹 删除修改图片 修改删除

延伸阅读

最新评论

发表评论