Mamy tabele
Dane
Id
IdWartosc
IdWartosc2
Wartosc
Id
Nazwa
Robimy zapytanie z tabeli Dane
, dołączamy Includem tabele Wartosc
i jaki będzie wynik całości?
Mamy tabele
Dane
Id
IdWartosc
IdWartosc2
Wartosc
Id
Nazwa
Robimy zapytanie z tabeli Dane
, dołączamy Includem tabele Wartosc
i jaki będzie wynik całości?
Może będę trochę czepliwy ale.
Linq sam w sobie nie zawiera metody Include.
Domyślam się że chodzi ci o Include które pochodzi z EF (teraz pytanie z którego)
jeżeli chodzi ci o konstrukcje ctx.Dane.Include(x=>x.DIdWartość)
to dołączona będzie tylko dla wyniku Wartość, a nie dla Wartość2
Na SQL przetłumaczył bym to na
select * from Dane d
join Wartość w on w.id=IdWartosc
Aczkolwiek to odpowiedz bazująca na domysłach
Jeśli klasa Dane wygląda tak.
class Dane {
public int Id {get; set;}
public int IdWartosc {get; set;}
public Wartosc Wartosc {get;set;}
public int IdWartosc2 {get; set;}
public Wartosc Wartosc2 {get;set;}
}
To zależy ile dasz includów. Nie powinieneś miec dwóch kluczy a jeden model czyli takiego czegos
class Dane {
public int Id {get; set;}
public int IdWartosc {get; set;}
public Wartosc Wartosc {get;set;}
public int IdWartosc2 {get; set;}
}
Kardash napisał(a):
ctx.Dane.Include(x=>x.DIdWartość)
to dołączona będzie tylko dla wyniku Wartość, a nie dla Wartość2
On to właśnie mi chodziło . O tego includa co napisałeś. Jak teraz zrobić żeby wynik był też dla Wartosc2?
ctx.Dane.Include(x=>x.DIdWartość).Include(x=>x.IdWartosc2)
Polecam też wskazać jakiego ORM dokładnie używasz pozwoli to na przyszłość lepiej pomagać :)
looknij sobie na takie pojecia jak lazy loading i eager loading (tutaj entity framework) : https://learn.microsoft.com/en-us/ef/ef6/querying/related-data