CartLine とその他の情報を使用して、複雑な「読み取りモデル」(カート) を作成する必要があります。現時点では、他の多くのオブジェクト (カート、操作など) に基づく ViewModel があり、このオブジェクトを構築するロジックは、リポジトリとコントローラー (集約ではありません) にディスパッチされています。 「読み取りモデル」を直接返すリポジトリ (フォーマットされたテキスト、価格など)。
Dapper ではストアド プロシージャ (クライアントのポリシー) のみを使用できます。この読み取りモデルを作成するより良い方法を探しています:
1.既存のストアド プロシージャを呼び出し、ストアド プロシージャの結果を DTO にマップし、その結果を読み取りモデルに再度マップします。
public class Cart
{
public Cart(CartDb cartDb, IEnumerable<CartDetailDb> cartDetailsDb,
OperationDB operationDb)
{
//Code
}
}
-> 2 つのレベルのオブジェクトがあり、混乱していると思います
2.読み取りモデルに直接マップするストアド プロシージャを作成します (DTO を回避するため)。
-> ストアド プロシージャに何らかのロジックを追加する可能性があるため、この方法は好きではありません
3.ViewModelを使う
他の提案?