Bonjour,
Je développe actuellement une application en ASP.NET MVC.
Voici mon architecture :
- DAL (avec Entity Framework 4)
- Entities (POCO)
- Repositories
- Website
Dans les méthodes de mon repository j'avais commencé par coder comme ceci :
public class sugRepository : IDisposable
{
private PocoEntities _context;
public SugRepository()
{
}
public List<sug_suggestion> ReadAll(int _sug_id)
{
using (_context = new PocoEntities())
{
return this._context.sug.FirstOrDefault(a => a.sug_id == _sug_id).ToList();
}
public void Dispose()
{
if (_context != null)
_context.Dispose();
}
}
Puis je réalisais des appels dans les controllers de mon website comme ca :
public ActionResult Suggestion()
{
using(var sugRepo = new sugRepository())
{
var suggestion = sugRepo.ReadAll();
return PartialView("ManagementSuggestion", suggestion);
}
}
Tout marchait parfaitement jusqu'à aujourd'hui ou j'ai voulu utiliser le composant WebGrid. Se pose alors le problème du chargement dynamique des données. Je souhaite que lors du chargement de la page seules les données de la première page de la grid soient
chargées.
Apparemment ce n'est donc pas une List ou IList qu'il faut utiliser mais plutôt un IEnumerable (directement au niveau du Repository). Dites moi si je me trompe...
J'ai donc transformé mon Repository de telle manière:
public IEnumerable<sug_suggestion> ReadAll()
{
_context = new PocoEntities();
return this._context.sug;
}
J'ai donc du virer également tous les using car la connexion se fermait avant même que le grid charge les données.
Donc actuellement cela marche, mais du coup je ne sais plus quand sont dés alloué l'instance de mon context et de mon repository.
Pour être sur de partir sur une bonne architecture je me permet de poster un message ici. En vous remerciant par avance pour votre aide.
Bonne journée.