0

サービスレイヤーを使用してデータを取得および保存するコントローラーを備えたMVCレイヤーがあります。私のサービスレイヤーには、次のようなメソッドがあります。

public interface ISetServices
    {
        List<Set> GetBreadcrumbs(int? parentSetId);

        List<Set> GetAllSets();
        List<Set> GetAllTopLevelArchivedSets();
        List<Set> GetTopLevelSets();
        Set GetSet(int? setId);
        Set CreateSet(string name, string details, int? parentSetId);
        void DeleteSet(int? setId);
        void ArchiveSet(int? setId);
        void UnArchiveSet(int? setId);
  / etc

私のMVCレイヤーは、viewModelsを使用してデータを表示します。これは、編集サービスを実装するまでは問題ありませんでした。私が今やろうとしているのは、コントローラーからviewModelを取得し、それに応じてデータベースを更新するUpdateSetメソッドを作成することです。

MVCレイヤーはサービスレイヤーに依存しているため、サービスレイヤーはviewModelsを認識していません。これが依存性注入の出番ですか?それとも、私が見落としているこれにアプローチするためのより良い方法はありますか?

4

1 に答える 1

1

ViewModel を に変換しSetてから、それをサービス レイヤーに渡す必要があります。

public class SetController : Controller
{
    public Action Edit(SetViewModel viewModel)
    {
        var set = _setService.GetSet(viewModel.SetId);
        set.Prop1 = viewModel.Prop1;
        _setService.Edit(set);
    }
}
于 2013-02-25T18:45:48.530 に答える