この質問が数回聞かれるのを見てきましたが、何も私の問題を解決しません。私ができる最も単純なバージョンを作成しました:
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 対多のナビゲーション プロパティを持つアイテムを追加するたびに、新しいコンテキストを取得する必要があるのでしょうか?
前もって感謝します、この件に関する真実を知っている賢明なイーサの第一人者よ!