3. Adapter = Entitások létrehozása

témakör: Adatbázis elérés

Az entitások önmagukban reprezentálnak egy sort az adatbázisban, objektumként minden mezőhőz hozzáférési lehetőséget biztosítanak. Mindezt típusosan. Az entitásoknak azonban valahogy létre kell jönniük. Önállóan, a new Customer() nem alkalmas arra, hogy az entitás létrejöjjön.

Az EntityHandler példány annyi Adaptert tartalmaz, ahány féle táblánk van az adatbázisban. A Customer entitás kezeléséhez az EntityHandler.CustomerAdapter, a Product entitás-hoz pedig az EntityHandler.ProductAdapter lesz segítségünkre. Az adapterek az alábbi metódusokat tartalmazzák (a metódushívások a using (EntityHandler handler = CreateEntityHandler()) blokkon belül értendőek):

  • CustomerCollection CreateEmptyCollection(): Üres entitásgyűjtemény létrehozása, amelyhez entitásokat adhatunk hozzá vagy a gyűjtemény AddNew() metódusát meghívva új entitást hozhatunk létre benne.
  • Customer CreateNewObject(): Új entitás példány létrehozása önállóan. Az entitás nem egy gyűjteményben jön létre, önállóan létezik.
  • CustomerCollection SelectAll(): Összes entitás lekérdezése és elhelyezése egy entitás gyűjteménybe. (WHERE nélküli SELECT). Amennyiben az entitásnak van Deleted mezője, úgy a SelectAll() paramétere a ShowDeleted, amely alapján eldől, hogy minden elemet vagy csak a nem törölteket jelenítsük meg.
  • Customer SelectByPK(long id): Adott ID-jú elem beolvasása és létrehozása önálló entitásként.
  • CustomerCollection SelectByCondition(WhereClause whereclause): Megadott SQL WHERE szűrőfeltételeknek megfelelő adatbázis sorok kiolvasása a táblából.

 

WhereClause?

A WhereClause egy típusos WHERE feltétel megírását támogató eszköz. Amennyiben a tábla és mezőneveket pontosan kívánjuk megadni, úgy célszerű használni az XXXField konstansokat.

Például:

                    WhereClause wc = CustomerField.Phone == “20-555-7845” | CustomerField.Name == “Csaba”;
                    CustomerCollection cc = handler.CustomerAdapter.SelectByCondition(wc & CustomerField.PaymentMethod != 12);

Hozzászólok