0

我有模型页面:

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; }

设置相同型号的非必需子项的最佳方法是什么?

4

1 回答 1

1

我采用的方式需要模型中的一些附加属性(我使用 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);

本质上,每个孩子都知道其父母,并且由于导航属性,您可以从双方探索关系。

于 2013-07-10T10:44:31.707 回答