0

我正在考虑实现一些 LINQ to SQL,但很难了解我们如何添加访问控制业务规则,例如客户 a 只能查看他们的订单。在 ado.net 数据服务中,查询拦截器完全符合我的要求,并且可以查看如何检查更新/插入/删除,但是否有类似的情况:

[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; 
} 

或者我需要通过以下方式的访问器进行控制:GetOrdersByCustomer(string customerId)

4

1 回答 1

0

我认为,在这种情况下,更好的解决方案是构建一个真正的业务层,它位于应用程序层和您的 LINQ to SQL 类之间。

然后,您将查询您的业务层,这反过来将实现您的所有业务逻辑和过滤。如果架构得当,该业务层对于任何编写应用程序层的人来说都是相当透明的,然后每个人都会很高兴。

于 2009-09-18T13:39:42.883 回答