MVC ソリューションで ViewModels を処理する方法について決心しようとしています。さまざまな投稿やブログを読んだ後、最良のアプローチは、インターフェイスを実装し、それらをコントローラー自体に挿入するビルダーを用意することだと思います。
automapper を使用して、各ビルダーの実装でエンティティとビューモデル間のマッピングを行い、コントローラーは非常に薄いままです。
だから私はこのインターフェースを作成します
public interface IViewModelBuilder<TViewModel, TEntity>
{
TViewModel Build(TEntity entity);
}
今のところ、それらを共変および反変にすることに関する警告を無視します (それが必要かどうかはわかりません)。
特定の ViewModel については、2 つの異なるサービスから 2 つのエンティティを取得する必要があるため、どの型引数を渡せばよいかわかりません。
public class ConcreteVMBuilder: IViewModelBuilder<concreteVM, ????>
多分そのインターフェースは正しくありませんか?
コントローラーでフェッチされた 2 つのエンティティをマージすることは、クリーンなソリューションではないことを理解していますよね?
誰かが私に手を差し伸べてくれるなら、私はとても感謝しています