Zobrazení dopředných vazeb
Dopředné vazby 1xN jsou reprezentovány polem typu Proxy.
Upravíme metodu Zobrazit tak, aby nám u každé osoby vypsala i její rodiče.
private static void Zobrazit()
{
ProxyList osoby = Rivet.Instance
.Query("select OID from Osoba")
.Sort<Osoba>
foreach (Osoba osoba in osoby.Cast
Console.WriteLine(
string.Format("{0} OTEC: {1} MATKA: {2}",
osoba,
osoba.Otec,
//osoba.Otec.IsPersistent ? osoba.Otec : null,
osoba.Matka
//osoba.Matka.IsPersistent ? osoba.Matka : null
));
}
Dostaneme:
- Podivné hodnoty „00000000-0000-0000-0000-000000000000“ jsou způsobeny tím, že objekt Proxy vrací v metodě „ToString“ implicitně textovou podobu svého OID. A protože příslušné osoby nemají v databázi zavedeny své rodiče (a tedy není zde metoda „ToString“ přetížena), vrací systém místo nich prázdný objekt Proxy (a jeho prázdný OID).
- Metodu Zobrazit můžeme vylepšit tak, že příslušné řádky nahradíme těmi zakomentovanými. Vlastnost IsPersistent nám říká, jestli je daný objekt uložen v databázi (true) nebo se nachází pouze v paměti.