設定狀態新增了物件圖

物件圖 (相關實體的集合) 的狀態設定為 Added 與將單個實體設定為 Added(參見此示例 )不同。

在這個例子中,我們儲存了行星及其衛星:

類模特

public class Planet
{
    public Planet()
    {
        Moons = new HashSet<Moon>();
    }
    public int ID { get; set; }
    public string Name { get; set; }
    public ICollection<Moon> Moons { get; set; }
}

public class Moon
{
    public int ID { get; set; }
    public int PlanetID { get; set; }
    public string Name { get; set; }
}

上下文

public class PlanetDb : DbContext
{
    public property DbSet<Planet> Planets { get; set; }
}

我們使用此上下文的例項來新增行星及其衛星:

var mars = new Planet { Name = "Mars" };
mars.Moons.Add(new Moon { Name = "Phobos" });
mars.Moons.Add(new Moon { Name = "Deimos" });

context.Planets.Add(mars);

Console.WriteLine(context.Entry(mars).State);
Console.WriteLine(context.Entry(mars.Moons.First()).State);

輸出:

Added
Added

我們在這裡看到的是,新增一個 Planet 也將月亮的狀態設定為 Added

當將實體的狀態設定為 Added 時,其導航屬性中的所有實體(導航到其他實體的屬性,如 Planet.Moons)也標記為 Added除非它們已附加到上下文