这个是实体:    public class Category
    {
        /// <summary>
        /// 索引号
        /// </summary>
        [Key]
        [Required]
        public Guid Index { get; set; }        /// <summary>
        /// 分类名称
        /// </summary>
        [Required]
        [MaxLength(20)]
        public string Name { get; set; }
        
        /// <summary>
        /// 上级分类
        /// </summary>
        public virtual Category Parent { get; set; }
    }调用方法:DataContext data = new DataContext();
Category item = data.Category.SingleOrDefault(c => c.Index == "随便一个数据");            
if (item == null)
    return false;
item.Name = "随便";
//while (item.Parent != null)
    item.Parent = null;
data.SaveChanges();
data.Dispose();
return true;如果注释掉while,那么这个item.Parent在=null后,还是原来的值
使得item.Parent还是不为空需要while才能使得item.Parent成功赋值为null另外一点,如果断点在item.Parent = null;的时候等1两秒再继续,那么Parent又可以成功赋值为null!如果断电在item.Name = "随便";
然后继续,Parent就不能成功赋值为null。这个问题是神马回事啊?    public class DataContext : DbContext
    {
        public DbSet<Category> Category { get; set; }    
    }