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ć?