1

これは私のカテゴリモデルです:

public class Category :IAggregateRoot
    {
        public Guid Id { get; set; }
        public string Name { get; set; }

    }

これは私の CategoryViewModel です:

 public class CategoryViewModel
    {
        public Guid  CategoryId { get; set; }
        public string Name { get; set; }
    }

この Category を Automapper で CategoryViewModel にキャストしたいのですが、 CategoryViewModel の CategoryId を Id に変更すればOKです! しかし、この場合、コントローラで Guid 値を取得できません! これらを互いにGuidにキャストするにはどうすればよいですか?? また、これは私のマッパークラスです:

public static CategoryViewModel ConvertToCategoryViewModel(this Category category)
        {
            return Mapper.Map<Category, CategoryViewModel>(category);
        }
4

1 に答える 1

3

ある時点で、おそらく次の呼び出しで自動マッパーマッピングを設定しています

Mapper.CreateMap<CategoryModel, CategoryViewModel>();

CreateMap の後、呼び出します

.ForMember(m=>m.CategoryId, c=>c.mapfrom(d=>d.Id)).

これにより、プロパティから categoryId プロパティをマップするよう自動マッパーに指示されIdます。

編集: 完全なコードは次のようになります。

// in app start
Mapper.CreateMap<CategoryModel, CategoryViewModel>()
    .ForMember(cvm => cvm.CategoryId, c => c.MapFrom(cm => cm.Id));

// in you mapping method:
return Mapper.Map<CategoryModel, CategoryViewModel>(categoryModel);
于 2013-02-17T14:08:55.450 に答える