Question

Je cherche à implémenter certains LINQ to SQL mais j'ai du mal à comprendre comment nous ajouterions des règles commerciales de contrôle d'accès telles que les clients ne peuvent afficher que leurs commandes. Dans les services de données ado.net, les intercpteurs de requête font exactement ce que je cherche et peuvent voir comment vérifier la mise à jour / l'insertion / la suppression, mais existe-t-il un équivalent de ceci:

[QueryInterceptor("Orders")] 
public IQueryable<Orders> OnQueryOrders(IQueryable<Orders> orderQuery) 
{ 

      return from o in orderQuery 
         where o.Customers.ContactName == HttpContext.Current.User.Identity.Name 
         select o; 
} 

Ou je dois contrôler via des accesseurs le long de la ligne suivante:     GetOrdersByCustomer (chaîne customerId)

Était-ce utile?

La solution

Je pense que dans ce cas, la meilleure solution serait de créer une véritable couche de gestion située entre la couche d'application et vos classes LINQ to SQL.

Vous interrogerez ensuite votre couche de gestion, qui à son tour implémentera toute votre logique métier et votre filtrage. Si elle est correctement architecturée, cette couche de gestion pourrait être assez transparente pour quiconque codant la couche d’application. Tout le monde serait heureux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top