4

MVC ソリューションで ViewModels を処理する方法について決心しようとしています。さまざまな投稿やブログを読んだ後、最良のアプローチは、インターフェイスを実装し、それらをコントローラー自体に挿入するビルダーを用意することだと思います。

automapper を使用して、各ビルダーの実装でエンティティとビューモデル間のマッピングを行い、コントローラーは非常に薄いままです。

だから私はこのインターフェースを作成します

public interface IViewModelBuilder<TViewModel, TEntity>
{
    TViewModel Build(TEntity entity);
}

今のところ、それらを共変および反変にすることに関する警告を無視します (それが必要かどうかはわかりません)。

特定の ViewModel については、2 つの異なるサービスから 2 つのエンティティを取得する必要があるため、どの型引数を渡せばよいかわかりません。

public class ConcreteVMBuilder: IViewModelBuilder<concreteVM, ????>

多分そのインターフェースは正しくありませんか?

コントローラーでフェッチされた 2 つのエンティティをマージすることは、クリーンなソリューションではないことを理解していますよね?

誰かが私に手を差し伸べてくれるなら、私はとても感謝しています

4

1 に答える 1