ドメイン モデル クラスをデータベースにロード/保存するために NHibernate (v3.3) を使用しています。MVC3 Web サイトのフロント エンドで使用するビュー モデル クラスの束を作成しました。そのため、AutoMapper (v2.1) を使用してビュー モデル クラスをドメイン クラスにマップすることを計画していました。
Restaurant と RestaurantViewModel の 2 つのクラス間で Map 構成を定義しました。メソッドは次のとおりです。
public void Create(IConfiguration configuration)
{
if (configuration == null)
throw new ArgumentNullException("configuration");
IMappingExpression<RestaurantViewModel, Restaurant> map =
configuration.CreateMap<RestaurantViewModel, Restaurant>();
map.ForMember(x => x.Address, o => o.ResolveUsing(x => new Address
{
BuildingNumber = x.BuildingNumber,
City = x.City,
PostalCode = x.PostalCode,
Street = x.Street
}));
map.ForMember(x => x.Categories, o => o.Ignore());
map.ForMember(x => x.Photo, o => o.Ignore());
}
しかし、Mapper.Map<RestaurantViewModel>(restaurant)を呼び出すと例外が発生しました。
これは例外のテキストです:
Missing type map configuration or unsupported mapping.
Mapping types:
RestaurantProxy -> RestaurantViewModel
RestaurantProxy -> FoodDelivery.Website.Models.RestaurantViewModel
Destination path:
RestaurantViewModel
Source value:
FoodDelivery.DataDomain.Restaurant
NHibernate がレストランの周りに RestaunrantProxy という名前でプロキシを作成しているように見えるため、AutoMapper にレストランを RestaurantViewModel にマップするように依頼すると、実際にプロキシがマップされ、そのマッパーのマップがないため、例外がスローされます。
コードを修正する方法はありますか?