是否可以更新导航属性而无需在实体框架中往返数据库?

时间:2012-11-12 22:35:54

标签: entity-framework

我有一个包含Roles导航属性的User对象。

  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;
    }

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

0 个答案:

没有答案