5

Próbuję przenieść moją starą aplikację do nowego EF Rdzenia, ale nie mogę znaleźć jakieś relacje, takie jak:WithOptional z Entity Framework rdzeń

HasRequired(o => o.Document).WithOptional(o => o.CancelNote); 

Czy istnieje kilka metod przedłużania? Nie mogę znaleźć na dokumentach.

The HasRequired Myślę, że można zastąpić metodą HasOne(), ale co z WithOptional()?

Co innego, zgodnie z docs, jednostka nie używa słowa kluczowego virtual do tworzenia właściwości nawigacji, jak działa leniwe ładowanie?

Odpowiedz

9

Nie można znaleźć równoważnej metody HasOptional w EF7. Zgodnie z konwencją, jeżeli nieruchomość jest nullable FK, ty nieruchomość nawigacji będą traktowane jako opcjonalne

modelBuilder.Entity<Blog>() 
       .HasOne(p => p.Document) 
       .WithOne(i => i.CancelNote) 
       .HasForeignKey<Document>(b => b.CancelNoteForeignKey); 

O swoim drugim pytaniu EF rdzeń (EF7) nie obsługuje leniwy załadunku. W tym link znajdziesz opcje, które masz teraz, aby wczytać jednostki powiązane

+0

Ale moja własność FK jest jednostką Document: * publiczny wirtualny dokument Document {get; set;} * Właściwość ta powinna być pusta? – gog

+0

Nie, to, co wskazujesz, jest właściwością nawigacji, twoja własność FK powinna brzmieć: 'public int? AnulujNoteForeignKey {get; set;} ' – octavioccl