Repository navigation
ORM
Prérequis : Veuillez utiliser la référence Assembly-CSharp-firstpass qui contient SQLite. Vous la retrouverez au même endroit que l'Assembly-CSharp.
Afin de stocker vos données avec l'ORM dans une base de donnée il va falloir suivre quelques règles du au SQLite et du a l'Orm de ModKit.
Premièrement, vous devrez commencer par créer votre classe représentant vos table, voici ce qu'elle doit contenir :
- Votre classe doit hérité de ModEntity. Cela permettra à votre classe d'être managé par l'ORM.
public class VotreClasse : ModEntity<VotreClasse>- Votre classe doit avoir une propriété
Id(un identifiant unique) avec l'attribut obligatoire[PrimaryKey]. Vous pouvez ajouter l'attribut[AutoIncrement]pour que les identifiants soient générés automatiquement.
[AutoIncrement] [PrimaryKey] public int Id { get; set; }- Votre classe doit contenir toutes les propriétés nécessaires pour votre table. Ils doivent d'être Public et avec un getter et setter accessible.
public string Nom { get; set; }
public int Chiffre { get; set; }Voici un exemple d'une table à son globale :
using SQLite;
namespace ModAdmin.Entities
{
public class VotreClasse : ModKit.ORM.ModEntity<VotreClasse>
{
[AutoIncrement][PrimaryKey] public int Id { get; set; }
public string Nom { get; set; }
public int Chiffre { get; set; }
public VotreClasse()
{
}
}
}Les attributs sont des annotations que vous ajoutez à vos champs ou propriétés dans le code. Ils donnent des instructions spécifiques à l'ORM.
-
[NonSerialized]ou[Ignore]: Ces attributs indiquent à l'ORM de ne pas inclure un champ dans la base de données. Parfait pour des valeurs temporaires ou calculées. -
[Unique]: Garantit que la valeur d’un champ soit unique dans la table. Attention, cela peut empêcher l’ajout ou la modification si une valeur identique existe déjà. -
[NotNull]: Empêche qu'un champ ait une valeur nulle.
Après avoir crée votre Table, vous devrez faire en sorte que celle ci soit crée par l'ORM dans la DB ModKit.
Rajoutez simplement Orm.RegisterTable<VotreClasse>(); dans OnPluginInit() et votre Table a bien été crée !
public override void OnPluginInit()
{
base.OnPluginInit();
Orm.RegisterTable<TestClassOrm>();
Orm.RegisterTable<ChildTestClassOrm>();
}Une fois votre base de données initialisée, vous pouvez interagir avec vos données sans problème en utilisant les méthodes suivantes.
Pour créer une nouvelle entrée dans votre table, vous pouvez utiliser le modèle ci-dessous :
VotreClasse instance = new VotreClasse(...);
instance.Nom = "Triple Monstre !";
instance.Chiffre = 20;
bool result = await instance.Save();
// Optionnel en fonction de l'état de la sauvegarde
if (result)
{
// Sauvegarde effectuée avec succès
}
else
{
// Sauvegarde impossible
}Pour trouver un enregistrement précis via son ID :
int idToQuery = 15;
var queriedElement = await VotreClasse.Query(idToQuery);Pour récupérer tous les enregistrements de la table :
var allElements = await VotreClasse.QueryAll();Pour rechercher un enregistrement précis en utilisant des conditions :
var queriedElements = await VotreClasse.Query(elmt => elmt.Chiffre > 10 && elmt.Nom == "Triple Monstre !");Pour modifier les données d'un ou plusieurs enregistrements existants :
Modifier un seul enregistrement
var queriedElements = await VotreClasse.Query(elmt => elmt.Chiffre > 10);
// Cela vous retourne tous les enregistrements avec `Chiffre > 10`
// Pour modifier uniquement le premier enregistrement trouvé
VotreClasse element = queriedElements.FirstOrDefault();
if (element != null)
{
element.Chiffre = 0;
await element.Save();
}Modifier plusieurs enregistrements
foreach (var element in queriedElements)
{
element.Chiffre = 0;
await element.Save();
}Pour supprimer un enregistrement existant :
//Vous recherchez votre element comme précédement et vous le supprimer
//Passez par queriedElements.FirstOrDefault() ou par un foreach
var result = await instance.Delete();- Getting Started
- Ajouter une compétence métier
- Ajouter une interaction
- Ajouter une proximité
- Ajouter une proximité d'activité
- Ajouter une action admin
- Ajouter un plugin
- Retourner vers AAMenu
- Introduction
- Ajouter une activité personnalisé
- Associer une société à une activité personnalisées
- Connaitre l'activité d'un joueur
- Introduction
- PatternData
- Classe de base
- Fonctions à compléter ou créer
- Enregistrer votre type de point en base de donées
- Intégrer votre type de point à AAMenu
- Introduction
- Peupler la base de donées
- Créer un vêtement personnalisés
- Equiper un vêtement
- Afficher les vêtements selon leurs type
- Attribuer/Retirer un vêtement à un joueur
- Recipe & Ingredient
- Récupérer les recettes
- Récupérer les recettes selon la catégorie
- Ajouter une recette
- Comment l'utiliser
