Mam dwa modele:
class User {
[Key]
string Id;
... inne pola ...
}
class Code {
virtual User Owner;
... inne pola ...
}
Entity Framework mapuje klucz obcy User na string (User_Id). Załóżmy że mam w bazie kilkadziesiąt tysięcy Code. Chcę znaleźć Code, którego klucz obcy wskazuje na konkretnego User. Szukam to w następujący sposób: db.Codes.SingleOrDefault(c => c. Owner.Id == userId). Co się dzieje w takim przypadku? Czy za każdym razem podczas przeszukiwania tabeli Codes wczytywany jest pełen obiekt User z bazy danych w celu porównania jego Id z userId? Czy może porównywana jest wartość string (User_Id) z userId bez wczytywania obektu typu User? Czy lepiej będzie zamienić model Code na następującą postać
class Code {
string OwnerId;
... inne pola ...
}