Naplnění systému daty
Níže uvedená metoda naplní systém pěti osobami – rodiči a třemi dětmi.
Příklad demonstruje:
- objekty je možno vytvářet „odpojené“ a připojit je k databázi teprve před uložením
- připojení objektu k databázi se provádí metodou „Bind“
- databázové příkazy INSERT a UPDATE se provádí příkazem „Update“ na připojeném objektu
- připojení se provádí prostřednictvím bloku using a objektu typu Context (metoda Update vyžaduje transakční připojení ContextTran)
- připojení k databázi trvá uvnitř bloku using. Po opuštění tohoto bloku je spojení uzavřeno.
- pokud je použito transakční připojení ContextTran, je třeba před jeho uzavřením explicitně zavolat metodu Commit, v opačném případě dojde před ukončením připojení k automatickému odrolování transakce a k žádným změnám v databázi nedojde.
private static void Naplnit()
{
Muz janSvoboda =
new Muz() { Jmeno = "Jan", Prijmeni = "Svoboda",
DatNarozeni = new DateTime(1949, 4, 9) };
Zena janaSvobodova =
new Zena() { Jmeno = "Jana", Prijmeni = "Svobodová",
DatNarozeni = new DateTime(1951, 8, 2) };
Muz jiriSvoboda =
new Muz() { Jmeno = "Jiří", Prijmeni = "Svoboda",
DatNarozeni = new DateTime(1971, 7, 3),
Otec = janSvoboda, Matka = janaSvobodova };
Muz pavelSvoboda =
new Muz() { Jmeno = "Pavel", Prijmeni = "Svoboda",
DatNarozeni = new DateTime(1975, 6, 19),
Otec = janSvoboda, Matka = janaSvobodova };
Zena evaSvobodova =
new Zena() { Jmeno = "Eva", Prijmeni = "Svobodová",
DatNarozeni = new DateTime(1976, 7, 21),
Otec = janSvoboda, Matka = janaSvobodova };
using (ContextTran ctx = Rivet.Instance.GetContextTran())
{
janSvoboda.Bind(ctx).Update();
janaSvobodova.Bind(ctx).Update();
jiriSvoboda.Bind(ctx).Update();
pavelSvoboda.Bind(ctx).Update();
evaSvobodova.Bind(ctx).Update();
ctx.Commit();
}
}