Výpis seznamu osob

Následující metoda vypíše na konzoli setříděný seznam osob.

Příklad demonstruje:

  • třída „ProxyList“ reprezentuje seznam objektů „Proxy
  • instance třídy „Rivet“ (je to singleton) nabízí metodu „Query“, vybavenou vnitřním jednorázovým připojením k databázi. (Pokud bychom chtěli volat metodu „Query“ vícekrát po sobě pod stejným připojením, lze použít konstrukci typu:

        using (Context ctx = Rivet.Instance.GetContext())
        {
            ProxyList muzi = ctx.GetProxyList().Query("select OID from Muz");
            ProxyList zeny = ctx.GetProxyList().Query("select OID from Zena");
            ...
        }

  • metoda „Query“ používá klasický (a mocný) SQL SELECT, přičemž vrácené objekty jsou plně identifikovány hodnotou primárního klíče „OID“. Lze používat libovolné platné konstrukce dotazu, které vrátí kolekci hodnot OID (výhoda - příkazy lze snadno ladit např. v Management studiu).
  • generická metoda „Sort“ provádí setřídění seznamu na úrovni SQL dotazu. Parametrem je lambda výraz, určující, podle kterého pole (sloupce) se bude třídit.
  • seznamy v sobě nesou pouze hodnoty OID – generickou metodou „Cast“ lze seznam převést na příslušnou generickou kolekci (zde List).
  • příklad demonstruje použití přetížené metody „ToString“ u persistentních objektů.
     

    private static void Zobrazit()
    {
        ProxyList osoby = Rivet.Instance
                .Query("select OID from Osoba")
                .Sort<Osoba>(SortDirection.Asc, a => a.DatNarozeni);

        foreach (Osoba osoba in osoby.Cast<Osoba>())
            Console.WriteLine(osoba.ToString());

        Console.ReadLine();
    }