Symbol eXtension » idegen kulcsok

Címkék: ‘idegen kulcsok’

2. Minden adat = entitás

posted in: Adatbázis elérés (Tags: , , , , ) - No Comments

Az entitás jellegű megközelítési mód minden adatot típusos formában enged kezelni. Ennek elsődleges célja és előnye, hogy nem tudunk mezőnév elírás miatt nem létező adatra hivatkozni, a projekt fordítésa során pedig már a fejlesztőkörnyezetben hibát kapunk, ha nem létező mezőre hivatkozunk. Külön kiemelendő, hogy az idegen kulcsokon való kapcsolódás is erősen típusos formában valósul meg.

 

Entitások
Minden adat egy-egy entitás objektum. Egy létrehozott vagy betöltött vevő egy Customer objektum példányként kezelhető. A Customer objektumban megtalálható minden mező, amely az adatbázisban rendelkezésre áll. Ezek a mezők a megfelelő típussal rendelkeznek.

  

Például:

    Customer c = handler.CustomerAdapter.CreateNewObject();
    c.Name = “Sample”; // string mező, mert az adatbázisban VARCHAR(100)
    c.SaveChanges(); // adatok mentése, csak implicit módban van rá szükség

Minden entitás rendelkezik az alábbi metódusokkal:

  • Delete(); // adat törlése; a rendszer figyelembe veszi, hogy az entitást fizikailag kell törölni, vagy csak logikailag (deleted=0)
  • Display(); // adat megjelenítése a szerkesztőablakában (nem minden entitásra érhető el)
  • DisplayAsDialog(); // adat megjelenítése a szerkesztőablakában modálisan (nem minden entitásra érhető el)

Az entitáshoz kapcsolódó idegen kulcsok elérhetőek objektumok szintjén (entitás) is. Például a Customer.PaymentMethod tartalmazza a vevő fizetési módjának ID-ját, míg a Customer.PaymentMethodObj a fizetési módot objektumként engedi elérni. Így láncoltan érhetőek el az adatok: Customer.PaymentMethodObj.DiscountPercent => vevő fizetési módjának kedvezmény mértéke.

 

Entitásgyűjtemények

Egynél több entitás gyűjteménybe szervezhető. A CustomerCollection például több vevőt fog össze. A gyűjtemények mentésekor a gyűjtemény minden elemének mentése megtörténik. A gyűjtemények felhasználási módjai:
 

  • Üres gyűjtemény létrehozása új adat hozzáadása céljából: CustomerCollection.AddNew();
  • Minden adat lekérdezése: Minden fizetési mód lekérdezésekor PaymentMethodCollection típusú objektum jön létre.
  • Szűrt adathalmaz lekérdezése: “A” betűvel kezdődő nevű vevők lekérdezéskor CustomerCollection jön létre.
  • Kapcsolódó gyermekobjektum gyűjtemények: Egy entitás objektum gyermek objektumaihoz való hozzáférés során is gyűjteményeket kapunk. Customer.ChildDocumentByCustomer a Document tábla azon entitás sorait adja vissza, amelyek ehhez a vevőhöz tartoznak. Fontos kiemelni, hogy a gyerekgyűjteményekhez való hozzáadás esetén a szülőre mutató hivatkozás beállítása kerül, a Customer.ChildDocumentByCustomer.AddNew() metódushívás során egy olyan dokumentum entitás jön létre, amelynek mentésekor a vevőhöz fog tartozni.

Gyűjtemények műveletei:

  • Indexelés: A gyűjtemény tömbként indexelhető.
  • AddNew(): új objektum létrehozása a gyűjteményben.
  • Count: elemek száma.
  • Filter és Find: adott feltételnek megfelelő elemek (Find esetén első elem) kiválasztása a gyűjtemény szűkítésével.