自动映射:缺少类型映射配置或不支持的映射,C#?
我有这样的课程:自动映射:缺少类型映射配置或不支持的映射,C#?,c#,.net,casting,mapping,automapper,C#,.net,Casting,Mapping,Automapper,我有这样的课程: public abstract class BookingShoppingCart : SerializableEntity, IShoppingCart { protected BookingShoppingCart() { Accommodations = new ObservableCollection<RQBooking>(); Packages = new ObservableCollection<RQ
public abstract class BookingShoppingCart : SerializableEntity, IShoppingCart
{
protected BookingShoppingCart()
{
Accommodations = new ObservableCollection<RQBooking>();
Packages = new ObservableCollection<RQBooking>();
Splits = new ObservableCollection<RQBookingContainer>();
}
public ObservableCollection<RQBooking> Accommodations { get; set; }
public ObservableCollection<RQBooking> Packages { get; set; }
public ObservableCollection<RQBookingContainer> Splits { get; set; }
public List<RQBooking> AllAccommodationsAndParts
{
get { return Accommodations.Union(Splits.SelectMany(s => s.Bookings)).ToList(); }
}
public List<RQBooking> AllBookedItemsAndParts
{
get { return Accommodations.Union(Packages).Union(Splits.SelectMany(s => s.Bookings)).ToList(); }
}
public decimal AccommodationFeesTotal
{
get { return AllBookedItemsAndParts.Sum(x => (x.RQReservation.FeeRules.Any(r => r.AppliedOn == FeeAppliedOn.Booking)) ? x.RQReservation.FeeRules.Where(r => r.AppliedOn == FeeAppliedOn.Booking).Sum(r => r.Total) : 0); }
}
public decimal AddonsFeesTotal
{
get { return AllAccommodationsAndParts.Sum(x => (x.DefaultRQAddonsOrder.Items.SelectMany(oi => oi.FeeRules).Sum(r => r.Total))); }
}
public decimal AccommodationTotalWithoutFees
{
get { return AllAccommodationsAndParts.Sum(x => x.RQReservation.TotalBooking) + Packages.Sum(x => x.Total); }
}
public decimal AddonsTotalWithoutFees
{
get { return AllAccommodationsAndParts.Sum(x => OrderItemGrouping.ItemsExceptFree(x.DefaultRQAddonsOrder).Sum(o => o.Total)); }
}
public decimal AddonsTotal
{
get { return AddonsTotalWithoutFees + AddonsFeesTotal; }
}
public UserInfoRequest UserInfoRequest { get; set; }
public string Currency { get; set; }
public string BookingDates { get; set; }
public string BookingStartDate { get; set; }
public string BookingStartDateFormat { get; set; }
public string BookingEndDate { get; set; }
public string BookingEndDateFormat { get; set; }
public string BookingNights { get; set; }
public decimal CurrencyExcRate { get; set; }
public abstract decimal Total { get; }
public abstract void Init();
}
public class BookingShoppingCartCreate : BookingShoppingCart
{
public override decimal Total
{
get { return AccommodationTotal + AddonsTotal; }
}
public override void Init()
{
}
}
public class QuoteBookingShoppingCart : BookingShoppingCartCreate
{
}
怎么了?从BookingShoppingCart到BookingShoppingCartCreate的映射有效,但从BookingShoppingCartCreate到QuoteShoppingCart的映射无效-否:(
我还尝试指定所有具有
.ForMember(dest => dest.AccommodationFeesTotal, exp => exp.MapFrom(scc => scc.AccommodationFeesTotal))
等等,但没有结果。它抱怨属性
QuoteBookingShopingCart
。但这不在您的代码中。应该如何映射?它的类型是什么?对应的源属性的类型是什么。AM说这些类型无法映射,也许您需要它们之间的映射。@LucianBargaoanu抱歉,不明白-什么是property QuoteBookingShoppingCart?这是一个类也许你正在使用一个旧版本,其中有一些奇怪的消息。然后你应该升级。但是消息说目标路径:QuoteBookingShoppingCart
。但这是正常的,不是吗?我认为目标路径=映射的类。我也可以在no中看到这一点,它应该是属性。U普拉德。
public class ExampleAutomapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(
configuration =>
{
configuration.AddProfile<QuoteProfile>();
});
Mapper.AssertConfigurationIsValid();
}
public class QuoteProfile : BaseProfile
{
protected override void Configure()
{
CreateMap<BookingShoppingCart, BookingShoppingCartCreate>()
.IgnoreAllNonExisting();
CreateMap<BookingShoppingCartCreate, QuoteBookingShoppingCart>()
.IgnoreAllNonExisting();
}
}
Missing type map configuration or unsupported mapping.
Mapping types:
BookingShoppingCartCreate -> QuoteBookingShoppingCart
ShoppingCarts.BookingShoppingCarts.BookingShoppingCartCreate -> ShoppingCarts.BookingShoppingCarts.QuoteBookingShoppingCart
Destination path:
QuoteBookingShoppingCart
.ForMember(dest => dest.AccommodationFeesTotal, exp => exp.MapFrom(scc => scc.AccommodationFeesTotal))