0

いくつかのLINQtoSQLの実装を検討していますが、顧客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

この場合、より良い解決策は、アプリケーション層とLINQtoSQLクラスの間に位置する真のビジネス層を構築することだと思います。

次に、ビジネスレイヤーにクエリを実行します。これにより、すべてのビジネスロジックとフィルタリングが実装されます。適切に設計されていれば、そのビジネスレイヤーは、アプリケーションレイヤーをコーディングするすべての人に対してかなり透過的であり、誰もが満足するでしょう。

于 2009-09-18T13:39:42.883 に答える