using CD67.ModeleMVC.Entity; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CD67.ModeleMVC.Factory { public class VIKINGSFactory : Internal.BaseFactory { /// /// Constructeur public lié au constructeur de base /// /// Context Entity Framework utilisé dans la classe public VIKINGSFactory(Entities dbContext) : base(dbContext) { } /// /// Retourne un objet par son Id /// /// Id recherché /// Objet recherché public EXEMPLE_VIKINGS getById(int Id) { return dbContext.EXEMPLE_VIKINGS.Find(Id); } /// /// Retourne tous les objets /// /// Liste d'objets public List getAll() { //Ce n'est pas nécessaire ici (un lazy loading est présent par défaut), mais j'ai ajouté un include explicite pour charger les sous-objets "EXEMPLE_TYPE_VIKING" return dbContext.EXEMPLE_VIKINGS.Include(item => item.EXEMPLE_TYPE_VIKING).ToList(); } /// /// Ajout de l'objet dans le context /// /// Objet à ajouter passé en référence pour obtenir le résultat des triggers ou numéroauto public void add(ref EXEMPLE_VIKINGS viking) { dbContext.EXEMPLE_VIKINGS.Add(viking); dbContext.SaveChanges(); } /// /// Mise à jour de l'objet dans le context /// /// Objet à mettre à jour passé en référence pour obtenir le résultat des triggers ou numéroauto public void update(ref EXEMPLE_VIKINGS viking) { // On attache l'objet en paramètre au contexte, on le note bien comme modifié pour qu'il soit mis à jour dbContext.EXEMPLE_VIKINGS.Attach(viking); dbContext.Entry(viking).State = EntityState.Modified; dbContext.SaveChanges(); } /// /// Suppression de l'objet dans le context /// /// Objet à supprimer public void delete(ref EXEMPLE_VIKINGS viking) { // Attention à ajouter ici d'éventuel contrôle ou suppression en cascade dbContext.EXEMPLE_VIKINGS.Remove(viking); dbContext.SaveChanges(); } } }