Pergunta

Eu estou olhando para implementar alguns LINQ to SQL, mas estou lutando para ver como nós woudl adicionar em regras de negócio de controle de acesso, tais como cliente uma só pode ver as suas ordens. Em ADO.NET Data Services, intercptors consulta fazer exatamente o que eu sou depois, e pode ver como verificar na atualização / inserção / exclusão, mas existe um equivalente do seguinte:

[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 wil eu preciso de controle via acessores ao longo da linha de: GetOrdersByCustomer (string customerId)

Foi útil?

Solução

Eu acho que, neste caso, a melhor solução seria a construção de uma verdadeira camada de negócios que fica entre a camada de aplicação e sua LINQ para classes de SQL.

Você, então, consultar a sua camada de negócios, que por sua vez iria implementar toda a sua lógica de negócios e filtragem. Se arquitetado adequadamente, que o Business Camada poderia ser bastante transparente para qualquer codificação da camada de aplicação e, em seguida, todo mundo ficaria feliz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top