Jak działa include do tabeli dla dwóch kluczy?

0

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?

1

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

1

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;}  
}
0
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?

0

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ć :)

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1