我有一个包含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不是当前上下文模型的一部分。”例外。 感谢。