Wpis z mikrobloga

Mam pytanie co do entity frameworka. Załóżmy że mam model User który ma relacje jeden do wielu z modelem Book (user może mieć wiele książek). Czy będzie jakaś różnica jeżeli w modelu user zrobię listę typu book (z tego co widziałem w bazie entity i tak tworzy wtedy FK w tabeli book do danego usera) lub jeżeli sam zdefiniuje klucz obcy w modelu book do usera? Jeżeli będę później chciał z bazy dostać wszystkie książki danego usera to i tak będe musiał szukać książek których klucz obcy wskazuje na danego usera?
Czy jest jakaś zaleta pierwszego podejścia (stworzenia listy książek w modelu user) czy to w zasadzie na jedno wychodzi?

#naukaprogramowania #programowanie #csharp #dotnet #dotnetcore #entityframework
  • 3
@sf71hrb6: Dokładnie tak jak napisał @kubsle
Ta referencja do List to navigation property, a używanie Include to tak zwany Eager Loading.

Rozwiązanie pierwsze w sumie można zastosować jednocześnie z drugim i przydaje się w sytuacji gdy masz encję dziecko i potrzebujesz tylko id parenta.

Przykład relacji Project ma wiele Section:

Project.cs

public ICollection Sections { get; set; } = new Collection();
Section.cs

[ForeignKey(nameof(ProjectId))]
public Project Project { get; set; }
public