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();
}
}
}