0

我正在开发一个 asp.net mvc 3.0 应用程序,并将 EF 4.1 用于我的数据访问层和工作单元模式。

这是我的模型:

 public class UpdateUserViewModel
    {
        public User User { get; set; }
    }

public partial class Role
    {
        public int Id { get; set; }

     }


    public partial class User
    {
        public Guid Id { get; set; }

        public virtual Role Role { get; set; }
    }

我将 UpdateUserViewModel 传递给视图,然后将视图中的表单发布到以下操作:

public ActionResult UpdateUser(User user)
        {
            var userObj = unitofwork.UserRepository.GetByID(user.Id);

            TryUpdateModel(userObj, "User");

            userObj.Role = unitofwork.RoleRepository.GetByID(user.Role.Id);

            unitofwork.UserRepository.Update(userObj);

            unitofwork.Save();
        }

当我在视图中更新用户角色(它是一个下拉列表)并尝试更新它时会出现问题。它给了我以下错误:

The property 'Id' is part of the object's key information and cannot be modified. 

但如果我不更新用户角色,它工作正常。

你能帮帮我吗?

4

1 回答 1

1

您可以使用“排除”属性列表调用 TryUpdateModel - 如果适合您的方案,则只需排除 ID 属性。

例如

TryUpdateModel(user, null, null, new [] { "Id"} )
于 2012-09-30T18:03:33.240 回答