私のViewModelには、次のようなコードがあります。
public class OrderViewModel
{
private UserOrder order;
private DeliveryCentre deliveryCentre;
// This is my EF Container
private CatalogueContainer catalogue = new CatalogueContainer();
// do some stuff...
public void Save()
{
if (order == null)
{
order = catalogue.UserOrders.CreateObject();
}
// do some other stuff...
if ((deliveryCentre == null)
|| (deliveryCentre.Id != deliveryCentreId))
{
deliveryCentre = catalogue.DeliveryCentres.First(centre => centre.Id == deliveryCentreId);
//Causes a context error, not sure why...
order.DeliveryCentre= deliveryCentre;
}
catalogue.SaveChanges();
}
そのため、配送センターが新しく、注文が新しい場合、古い「2つのオブジェクト間の関係は、異なるObjectContextオブジェクトにアタッチされているため定義できません」というエラーが表示されます。それらを同じオブジェクトコンテキストにもっと属するようにするために何をする必要があるのか わかりません。これは、Entity Framework の動作に関する根本的な誤解によるものだと思います。