gatno

C# DB Erklärung

Jan 28th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.67 KB | None | 0 0
  1. // 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
  2.  
  3. // Derzeit läuft es so:
  4. // Daten aus der Datenbank Characters Tabelle werden automatisch so auf den Spieler gespeichert:
  5. player:getData("PosX")
  6. /* Nachteile sind in diesem Fall:
  7.  + Man hat keine Typen der Variablen, im obigen Beispiel wäre es ein double
  8.  + Man muss z.B. vor dem Speichern einige Daten in setData konvertieren. Z.b. vom oberen Beispiel: */
  9. player.SetData("PosX", (double)player.Position.X);
  10.  
  11. // Eine Alternative wäre z.B. in der Character Class jeden Property zu initalisieren.
  12. public class Character
  13.     {
  14.         public decimal PosX;
  15.         ...
  16. /*
  17. Nachteile wären:
  18. + Man muss jede Property einmal mit Typ definieren
  19. + in der DB Load Methode muss man jede Property aus dem Database Model setzen. Bsp: */
  20. private void LoadData()
  21.      int AccountId = player.GetData("account.Id");
  22.                 if (db.Character.Count(X => X.Id == AccountId) == 1)
  23.                 {
  24.                     var character = db.Character.First(X => X.Id == AccountId);
  25.                     PosX = character.PosX
  26.                     ...
  27. /*
  28. + 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.
  29.  
  30. /*
  31. Es sind jedoch für jedes DB Feld 3-4 zeilen code:
  32. + Einmal das Definieren der Property
  33. + Das setzen der Variable in der DB Load funktion aus dem Database.Model
  34. + Manchmal: Setzen der Daten aus dem Spieler-Element  in die Character Property (z.b. Health, oder Position)
  35. + Das setzen der Character Class Properties in die Database.Model Properties
  36. */
Advertisement
Add Comment
Please, Sign In to add comment