1

この質問が数回聞かれるのを見てきましたが、何も私の問題を解決しません。私ができる最も単純なバージョンを作成しました:

public class Order
{
    public int OrderId { get; set; }
    public virtual List<Item> Items { get; set; } //One to many navigation property
}

public class Item
{
    public int ItemId { get; set; }
    public string Description { get; set; }
}

注文には多くのアイテムが含まれる場合があります。単純。次に、EF と対話します。

using (var context = new TestContext())
{
    Order test = new Order();
    context.Orders.Add(test);
    context.SaveChanges();
    test.Items.Add(new Item {Description = "test"});  // no good - test.Items is null!
}

これを行うtest.Itemsと null になり、操作できなくなります。ただし、コンテキストを「更新」すると、すべて問題ありません。

using (var context = new TestContext())
{
    context.Orders.Add(new Order());
    context.SaveChanges();
}

using (var context = new TestContext())
{
    Order test = context.Orders.First();
    test.Items.Add(new Item {Description = "test"});  // Happy days - test.Items is NOT null :)
}

私は何が欠けていますか?それとも、1 対多のナビゲーション プロパティを持つアイテムを追加するたびに、新しいコンテキストを取得する必要があるのでしょうか?

前もって感謝します、この件に関する真実を知っている賢明なイーサの第一人者よ!

4

1 に答える 1