这个是实体: 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; }
}
{
/// <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; }
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货