日期:2014-05-17  浏览次数:20966 次

EF修改实体的一点困惑

public override int Update(User model)
        {
            DbEntityEntry<User> entry = ConText.Entry<User>(model);
            entry.State = System.Data.EntityState.Modified;
            return ConText.SaveChanges();
        }

这个是修改的方法,一般情况下没有问题,修改页面上因为密码是不会显示出来的,所以服务端在加载修改页面的时候并没有发送[密码字段]到客户端,这里修改的时候,用户如果不想更改密码,那么密码就为空,修改的时候就把密码覆盖了,这种情况下应该如何做呢

------解决方案--------------------
密码不能放在User中。
------解决方案--------------------
edm每个字段单独付值,没有付值的字段保持原来的内容,也就是那个栏位不被update
------解决方案--------------------
先将password用一个变量记下,加个判断,如果提交的model没有password,就在更新完之后写回去。