Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Ausgangslage: Es gibt für jede Tabelle ein Database.Model, das Problem ist die Verknüpfung zwischen Diesem und dem eigentlichen Spieler bzw. Character Klasse
- // Derzeit läuft es so:
- // Daten aus der Datenbank Characters Tabelle werden automatisch so auf den Spieler gespeichert:
- player:getData("PosX")
- /* Nachteile sind in diesem Fall:
- + Man hat keine Typen der Variablen, im obigen Beispiel wäre es ein double
- + Man muss z.B. vor dem Speichern einige Daten in setData konvertieren. Z.b. vom oberen Beispiel: */
- player.SetData("PosX", (double)player.Position.X);
- // Eine Alternative wäre z.B. in der Character Class jeden Property zu initalisieren.
- public class Character
- {
- public decimal PosX;
- ...
- /*
- Nachteile wären:
- + Man muss jede Property einmal mit Typ definieren
- + in der DB Load Methode muss man jede Property aus dem Database Model setzen. Bsp: */
- private void LoadData()
- int AccountId = player.GetData("account.Id");
- if (db.Character.Count(X => X.Id == AccountId) == 1)
- {
- var character = db.Character.First(X => X.Id == AccountId);
- PosX = character.PosX
- ...
- /*
- + Beim Saven das selbe in umgekehrt wobei sachen wie position und health vom spieler element genommen werden müssen und davor in das model geschrieben werden müssen.
- /*
- Es sind jedoch für jedes DB Feld 3-4 zeilen code:
- + Einmal das Definieren der Property
- + Das setzen der Variable in der DB Load funktion aus dem Database.Model
- + Manchmal: Setzen der Daten aus dem Spieler-Element in die Character Property (z.b. Health, oder Position)
- + Das setzen der Character Class Properties in die Database.Model Properties
- */
Advertisement
Add Comment
Please, Sign In to add comment