日期:2014-05-20  浏览次数:20866 次

EF4.3 一个关于对象更新的基础问题
我要更新User对象,
int result = 0;
            using (var db = new SchoolSubSystemDBContext())
            {
                var ur = db.PermissionRoles.FirstOrDefault(r => r.ID == user.UserRole.ID);
                user.UserRole = ur;
                db.Entry(user).State = EntityState.Modified;
                result = db.SaveChanges();
            }
            return result > 0;

User对象包含了一个UserRole对象:
[Required(ErrorMessage = "请选择用户角色")]
        public System_Permission_UserRoles UserRole { get; set; }

更新的时候,User的其它基本信息都没问题,可是UserRoles就是更新不了,请问牛人这个问题怎么解决! 
只有这点可用分了,希望大家理解。万分感谢!!!!


------解决方案--------------------
 var ur = db.PermissionRoles.FirstOrDefault(r => r.ID == user.UserRole.ID);
你这获取到的还是老的 UserRole信息吧
------解决方案--------------------
楼主错了。

User 得通过查询出来实体类,你在用 传递进来的user 给User 实体类赋值。

这样 EF 才知道你要更新user,UserRole 才会被自动添加到数据库。