Třída Zena

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

using AVRivet;

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

        [MaxLength(50)]
        public string Rozena;
        public int ObvodPasu;

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

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

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

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

Poznámky ke kódu:

  • persistentní třída Zena dědí od třídy Osoba a potažmo od třídy Proxy
  • public int ObvodPasu - povinné nenulovatelné pole (:-) sorry, potřebuji příklad číselného 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 matka“.
  • GetPartneri() - vrátí všechny partnery, navázané přes vazbu Partnerstvi. Mnemo: „všichni muži z partnerství, kde já jsem žena“
  • AddPartner(Muz muz) - přidá vazbu na partnera. Mnemo: „přidej partnerství, kde já jsem žena a partner je muž“
  • RemovePartner(Muz muz) - odebere vazbu na partnerku. Mnemo: „odeber partnerství, kde já jsem žena a partner je muž“