Witam,
Tak się zastanawiam. Mam sobie jeden widok, z jakimiś informacjami - powiedzmy informacje o osobie, widok ten zawiera pole OS_ID - czyli ID osoby. Jest także drugi widok, który zawiera uprawnienia przypisane do osób - każda osoba może mieć wiele uprawnień. Ten widok uprawnień również zawiera pole OS_ID, więc można powiązać uprawnienia z konkretnymi osobami.
Dane te wyciągam jednym zapytaniem, które tak mniej więcej wygląda:
ctx.RaportOsobyUprawnione
.SelectMany(d => ctx.RaportUprawnienia, (a, b) => new { a, b })
.Where(x => x.b.OS_ID == x.a.OS_ID)
.Select(x => new
{
x.a.OS_IMIE,
x.a.KO_SYMBOL,
x.a.OS_NAZWISKO,
x.a.OS_SYGNATURA_APS,
x.b.UP_DATA_WAZNOSCI_KLAUZULI,
x.b.KT_ID
}).ToList();
No i tak jak widać - chcę mieć listę klauzul tajności (każda identyfikowana po KT_ID) z przypisanymi do nich osobami. Zapytanie jest dobre i działa tak jak chcę żeby działało.
Zastanawiam się jednak czy nie można by tego rozwiązać inaczej - definiując po prostu własne entity na diagramie (powiedzmy o nazwie OsobaInfo), ustawić odpowiednio powiązania i zapytanie uprościć do czegoś takiego:
return ctx.OsobaInfo.ToList();
Zaleta by była jeszcze taka, że na diagramie od razu byłoby widać co jest z czym powiązane i jak. Czy da się coś takiego zrobić?