Třída Muz

Persistentní třída Muz dědí od třídy Osoba.

using AVRivet;

namespace Rodokmen
{
    public class Muz: Osoba
    {
        public Muz() { }

        [MaxLength(50)]
        public string Povolani;
        public bool Vousy;
        public decimal? Plat;

        public override ProxyList GetDeti()
        {
            return GetNx1<Osoba>(a => a.Otec);
        }

        public override ProxyList GetPartneri()
        {
            return GetNxN<Partnerstvi>(a => a.Muz, b => b.Zena);
        }

        public ProxyList AddPartner(Zena zena)
        {
            return AddNxN<Partnerstvi>(a => a.Muz, b => b.Zena, zena);
        }

        public ProxyList RemovePartner(Zena zena)
        {
            return RemoveNxN<Partnerstvi>(a => a.Muz, b => b.Zena, zena);
        }
    }
}

Poznámky ke kódu:

  • persistentní třída Muz dědí od třídy Osoba a potažmo od třídy Proxy
  • public decimal? Plat - nepovinné nulovatelné pole
  • GetDeti() - přetěžujeme metodu, definovanou ve třídě Osoba - „zpětná“ vazba Nx1 je seznamem. Mnemo: „mé děti jsou všechny osoby, kde já jsem otec“.
  • GetPartneri() - vrátí všechny partnerky, navázané přes vazbu Partnerstvi. Mnemo: „všechny ženy z partnerství, kde já jsem muž“
  • AddPartner(Zena zena) - přidá vazbu na partnerku. Mnemo: „přidej partnerství, kde já jsem muž a partner je žena“
  • RemovePartner(Zena zena) - odebere vazbu na partnerku. Mnemo: „odeber partnerství, kde já jsem muž a partner je žena“