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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public ActionResult Suggestion() { using(var sugRepo = new sugRepository()) { var suggestion = sugRepo.ReadAll(); return PartialView("ManagementSuggestion", suggestion); } }
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:
J'ai donc du virer également tous les using car la connexion se fermait avant même que le grid charge les données.public IEnumerable<sug_suggestion> ReadAll()
{
_context = new PocoEntities();
return this._context.sug;
}
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.
Partager