문제

나는 LINQ에서 SQL을 구현하려는 것을보고 있지만 고객 A와 같은 액세스 제어 비즈니스 규칙을 추가하는 방법을보기 위해 고군분투하고 있습니다. Ado.net Data Services에서 Query Interptors는 내가 따르는 것을 정확하게 수행하고 업데이트 / 삽입 / 삭제를 확인하는 방법을 확인할 수 있지만 다음과 같습니다.

[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)

도움이 되었습니까?

해결책

이 경우 더 나은 솔루션은 애플리케이션 계층과 LINQ에서 SQL 클래스 사이에있는 진정한 비즈니스 계층을 구축하는 것입니다.

그런 다음 비즈니스 계층을 쿼리하여 모든 비즈니스 로직 및 필터링을 구현합니다. 제대로 건축 된 경우 해당 비즈니스 계층은 응용 프로그램 계층을 코딩하는 사람에게 상당히 투명 할 수 있으며 모든 사람이 행복 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top