문제
나는 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 클래스 사이에있는 진정한 비즈니스 계층을 구축하는 것입니다.
그런 다음 비즈니스 계층을 쿼리하여 모든 비즈니스 로직 및 필터링을 구현합니다. 제대로 건축 된 경우 해당 비즈니스 계층은 응용 프로그램 계층을 코딩하는 사람에게 상당히 투명 할 수 있으며 모든 사람이 행복 할 것입니다.
제휴하지 않습니다 StackOverflow