我有模型页面:
public int Id{ get; set; }
public string Name { get; set; }
我想在那里有子页面:
public int Id{ get; set; }
public string Name { get; set; }
public List<Page> Childrens { get; set; }
设置相同型号的非必需子项的最佳方法是什么?
我有模型页面:
public int Id{ get; set; }
public string Name { get; set; }
我想在那里有子页面:
public int Id{ get; set; }
public string Name { get; set; }
public List<Page> Childrens { get; set; }
设置相同型号的非必需子项的最佳方法是什么?
我采用的方式需要模型中的一些附加属性(我使用 virtual` 关键字作为导航属性,因为我需要延迟加载):
public class Page
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentID { get; set; } // Nullable int because your Parent is optional.
// Navigation properties
public virtual Page Parent { get; set; } // Optional Parent
public virtual List<Page> Children { get; set; }
}
然后,使用外键关联,您可以像这样配置关系(这是我的Page
映射):
// You may be configuring elsewhere, so might want to use `modelBuilder.Entity<Page>()` instead of `this`
this.HasMany(t => t.Children)
.WithOptional(t => t.Parent)
.HasForeignKey(x => x.ParentID);
本质上,每个孩子都知道其父母,并且由于导航属性,您可以从双方探索关系。