1

我有一个包含角色导航属性的用户对象。

  public partial class User
  {
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string UserEmail { get; set; }
    public string GivenName { get; set; }
    public byte[] RowVersion { get; set; }
    public Nullable<int> ServiceAreaId { get; set; }

    public virtual ICollection<Role> Roles { get; set; }
  }

我可以更新简单的属性,而无需从数据库中读取实体,如http://www.shawnmclean.com/blog/2011/04/entity-framework-deleteupdate-without-round-trip-to-the-database/中所述

    public User UpdateUser(User user, IEnumerable<Expression<Func<User, object>>> properties)
    {

            context.Configuration.ValidateOnSaveEnabled = false;
            context.Users.Attach(user);
            foreach (var selector in properties)
            {
                string propertyName = Utils.GetMemberInfoFromExpression(selector.Body);
                context.Entry(user).Property(propertyName).IsModified = true;   
            }
            context.SaveChanges();

        return user;
    }

但是,我不确定如何或是否可以为角色导航属性执行此操作。当我尝试得到“实体类型 Collection`1 不是当前上下文模型的一部分”时。例外。谢谢。

4

0 回答 0