請求書の表があります。私のサービス レイヤーは 1 つの請求書の請求書を計算する方法を知っていますTotal
が、一連の請求書を でフィルター処理したい場合、Total
「SQL でサポートされている翻訳がありません」という理由で LINQ クエリは失敗します。これは、すべての請求書レコードに対してネストされたクエリを実行できないために発生します。それを回避する正しい方法は何ですか?
各請求書は、文字通り、割引を含むテーブルTotal
から計算された行の合計を合計することによって決定されます。InvoiceLines
public decimal Total
{
get
{
return Lines.Sum(l => l.LineTotal); // Lines provided by repository
}
}
私は、サービス層にすでにあるビジネス ロジックをデータベースに複製したくないと考えています。これには、請求書の合計に影響を与える品目の割引が含まれます。Total
しかし、直接フィルタリングできるデータベース列に請求書をキャッシュする以外に方法はありません。
請求書は不変であるため、データの整合性の問題が発生することはありませんが、データの複製は嫌いです。ビューを使用して請求書の合計を表示することもできますが、私のリポジトリはサービス層の機能を実行しています。