我将创建一个带有子菜单的菜单结构。顶部菜单项的ParentID应为NULL。
我的模型:
public Menu()
{
this.active = true;
this.publishStart = DateTime.Now;
this.seq = 1;
}
public string Name { get; set; }
public string Name_Sub { get; set; }
public string Url { get; set; }
public int? Level { get; set; }
public int? ParentID { get; set; }
public string Icon { get; set; }
public int? Status { get; set; }
public virtual Menu Parent { get; set; }
public virtual ICollection<Menu> ChildMenus { get; set; }
并且
modelBuilder.Entity<Menu>().HasOptional(s => s.Parent)
.WithMany(s => s.ChildMenus).HasForeignKey(s => s.ParentID);
通过JSon更新顶级菜单(ParentID=null)时,我的ModelState无效,因为ParentID=null。
我可以使用ParentID = 0来解决顶级问题,但我想知道为什么使用空值会失败,尽管我在模型中将其设置为可空。
Nullable<int>
代替int?
。 - Gaui