W poniższej funkcji, po context.SaveChanges(), właściwość PropertyType ma zawsze wartość NULL. Właśnie przekonwertowałem z ObjectContext na DBContext (najpierw baza danych) i przed zmianą działało dobrze, a teraz nie. Czy jest coś, czego mi brakuje?Lazy Loading nie działa po SaveChanges Entity Framework
Sprawdzam identyfikator PropertyTypeID, który jest poprawnie zapisany i istnieje w bazie danych. Wszystkie relacje są poprawnie skonfigurowane w pliku db i edmx. Wygenerowane pliki .tt pokazują obiekt PropertyType jako wirtualny. To EF 5.
Oto kod (nie ważne zadania właściwości podmiotu została usunięta):
private ListingTransferDetail BeginListingTransferDetailReport(int PropertyTypeID)
{
ListingTransferDetail transfer_detail = new ListingTransferDetail();
transfer_detail.PropertyTypeID = PropertyTypeID;
using (IDXEntities context = new IDXEntities())
{
context.ListingTransferDetails.Add(transfer_detail);
context.SaveChanges();
TransferProgress += "<br /><br /><strong>" + DateTime.Now + "</strong>: Transfer initialized for property type \"" + transfer_detail.PropertyType.DisplayName + "\".";
}
return transfer_detail;
}
góry dzięki.
EDIT
I odkryli, że jeśli dodać poniższy wiersz kodu po SaveChanges(), to działa. Jednak nie jest to idealne, jak mogę domyślnie załadować obiekt?
context.Entry(transfer_detail).Reference(a => a.PropertyType).Load();
Jeszcze raz dziękuję.
to rozwiązać mój problem. Jednak wykonanie tej czynności wymaga utworzenia jednostki po utworzeniu kontekstu. Dlatego lepiej byłoby ręcznie załadować referencję, jak pokazano w mojej edycji. Dzięki za pomoc! – Ricketts