bonjour
je suis débutant en développement des application multiples layers veuillez s’il vous plais répondre sur cette question
dans une application bon de commande ASP.NET MVC multicouche, est ce que les requette linq faisant calculer le total des pris des items d’in bon commande doivent être écrit au niveau des repositories (data access layer) ou bien au niveau des classes BLL (business layer) avec des exemple s’il vous plais surtout en mvc
voici un exemple et je veux votre avis si correct ou non et votre correction:
l’exemple contient trois classe qui sont:
repository de bon commande dans data access layer
1 2 3 4 5 6 7 8 9 10 11 12 13 | namespece Dal { public class RepositoryBonCommande { BCmdeContext context = new BCmdeContext(); public IEnumrebale<BonCommande> GetAll() { context.BonsCommande; } //la suite de code } } |
repository item bon de commande (aussi data acess layer):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | namespece Dal { public class RepositoryItemBonCommande { BCmdeContext context = new BCmdeContext(); public IEnumrebale<ItemBonCommande> GetAllItemById(BonCommande bc) { context.ItemBonCommande.where(i => i.BonCmdeId == bc.BonCmdeId); } public ItemBonCommande GetItemById(int id) { context.ItemBonCommande.Find(id); } //la suite de code } } |
et la class BonCommandeBLL (business layer):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | namespace BLL { public class BonCommandeBLL { RepositoryBonCommande rbc = new RepositoryBonCommande(); RepositoryItemBonCommande ribc = new RepositoryItemBonCommande(); public IList<BonCommande> GetAll() { return rbc.GetAll(); } public decimal GetPrixTotal(BonCommande bc) { var query = from item in ribc.GetAllItemById(bc) select sum(item=>item.Prix * item.Quantite); return query; } } } |
- le calcule total des prix se fait au niveau de repository ou bien au niveau de BLL (en peut faire cette requette linq avec context dans le repository)?
- les méthode CRUD se fait au niveau de repository et ils sont appelé au niveau de BLL n’est ce pas?
- la méthode d’extension where ou bien la clause where dans la requette linq to entity est elle corresponde au régles de métier (sera implémenté au niveau de BLL) ou bien corresponde d’accé au donnée au données en lecture (au niveau de repositories).
- le code source est il correct? connaisszez vous des bonnes pratique?
tout aide, proposition sera apprécie
à bientôt
+0
-0