0

私は EF Code First を使用しており、多数の POCO を定義しています。一方、それぞれに定義されたViewModelクラスがいくつかあります。ここまでで、2 つのプロジェクトがあります。モデルと MVC。さらに、UnitOfWork と Repository Pattern (汎用リポジトリ クラス) を含む別のプロジェクトがあります。

UnitOfWork には、多数のフィールドとプロパティが書き込まれます。以下に例を示します。

public GenericRepository<ActionProvider> ActionProviderRepository
    {
        get
        {
            if (this.actionProviderRepository == null)
            {
                this.actionProviderRepository = new GenericRepository<ActionProvider>(context);
            }
            return actionProviderRepository;
        }
    }

このプロパティの型は、Model プロジェクトで定義されている ActionProvider クラスの型です。

しかし、私の問題です。 各 ViewModel を POCO クラスにマップする必要があります。Web をサーフィンした後、 AutoMapper を適用するようになりました。したがって、以下は UserController クラスで行ったことです。

 public class UserController : Controller
{
    private UnitOfWork unitOfWork = new UnitOfWork();
    private User _UserModel = new User();
    private VM_User _VM_User = new VM_User();
    //
    // GET: /User/

    public ViewResult Index()
    {
        _VM_User = Mapper.Map<MAHAL_E_MA_Model.POCO.User, VM_User>(_UserModel);


        return View(unitOfWork.UserRepository.Get(orderBy: us => us.OrderByDescending(u => u.ID)).OfType<User>().ToList());
    }
}

エラーは次のとおりです。

タイプ マップ構成が欠落しているか、サポートされていないマッピングです。

これらのリンクや他のリンクを試してみましたが、うまくいきませんでした! これです

そして、これ

どんな助けでも親切にいただければ幸いです..

4

2 に答える 2

1

私は最終的に次のコード行で問題を克服し、おそらく他の人に役立つように共有したいと思います:

public ViewResult Index()
    {
        var query = unitOfWork.UserRepository.Get(orderBy: us => us.OrderByDescending(u => u.ID)).OfType<User>().ToList();
        Mapper.CreateMap<User, VM_User>();
        IList<VM_User> vm_Users = Mapper.Map<IList<User>, IList<VM_User>>(query);

        return View(vm_Users);
    }
于 2013-06-05T14:41:26.883 に答える