2010-10-08 6 views
1

J'ai un projet ASP.NET MVC 2. J'ai découplé les calques. J'ai une couche de service et une couche de dépôt. Le contrôleur appelle les méthodes de service et seule la couche de service appelle les méthodes dans le référentiel.Question sur la structure

Le problème est: Une méthode de ma classe de référentiel utilise des jointures LINQ. De cette méthode, je voudrais retourner un type avec la fusion de certaines données de tables jointes. (c'est-à-dire, Name = a.Name, Position = b.Position) Et je retourne toujours IEnumerables dans ma classe de dépôt. Donc, dans ce cas, il semble que je doive définir un nouveau type pour (Name, Position), et retourner ce type depuis la fonction de dépôt. Mais, alors, je vais devoir remapper cette classe à une autre classe ViewModel. (Parce que je sépare des soucis, je ne devrais pas employer des classes de viewmodel dans le dépôt droit?) Cela mène à beaucoup de différentes classes. Les classes EF, les classes pour les tables jointes et les classes viewmodel.

Est-ce que je suis dans le bon chemin?

S'il vous plaît, éclairez-moi.

Merci

Répondre

0

Pensez à définir ces catégories à la couche de dépôt. Essentiellement, ce sont des classes DTO, et on dirait que vous étiez sur la piste que j'aurais prise.

Une raison pour laquelle vous vous attendiez à remapper cette classe à une autre classe ViewModel?

public class EmpPosition() 
{ 
    public property Name{get;set;} 
    public property Position{get;set;} 
} 

//Repo 
public IEnumerable<EmpPosition> GetEmployeePositions() 
{}