У меня есть два сложных типа: один из них находится в Service Layer, который служит как ViewModel, так и другой на уровне репозитория. Они определяются, как указано ниже:AutoMapper для пользовательских сложных типов
//The Repository Layer
public class ProductDetailsEntity
{
public Int64 StockNumber { get; set; }
public String StockName { get; set; }
public String Image { get; set; }
public Decimal Price { get; set; }
public String JewelleryName { get; set; }
public String ShortDescription { get; set; }
public Int64 ShippingDays { get; set; }
public String DesignCode { get; set; }
public List<SettingDetails> SettingsDetails { get; set; }
public List<SideStoneDetails> SideStoneDetails { get; set; }
}
// The Service Layer
public class ProductDetailsModel
{
public Int64 StockNumber { get; set; }
public String StockName { get; set; }
public String Image { get; set; }
public Decimal Price { get; set; }
public String JewelleryName { get; set; }
public String ShortDescription { get; set; }
public Int64 ShippingDays { get; set; }
public String DesignCode { get; set; }
public List<SettingDetailsModel> SettingsDetails { get; set; }
public List<SideStoneDetailsModel> SideStoneDetails { get; set; }
}
Имея SettingsDetailsModel, а также SettingDetails как:
public class SettingDetails // same Structure with different Names
{
public Int64 AttributeId { get; set; }
public String AttributeName { get; set; }
public String AttributeValue { get; set; }
}
И SideStoneDetailsModel и SideStoneDetails как:
public class SideStoneDetailsModel
{
public Int64 SideStoneSettingId { get; set; }
public String SideStoneSettingName { get; set; }
public String SideStoneSettingValue { get; set; }
}
Теперь, в то время как отображение из Entity к модели, Выбрасывает AutoMapper Исключение:
The following property on Repository.Entities.SettingDetails cannot be mapped:
SettingsDetails
Add a custom mapping expression, ignore, add a custom resolver, or modify the destination type Service.Models.SettingDetailsModel.
Context:
Mapping to property SettingsDetails of type Repository.Entities.SettingDetails from source type Service.Models.SettingDetailsModel
Mapping to property SettingsDetails of type System.Collections.Generic.List`1[[Repository.Entities.SettingDetails, Repository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] from source type System.Collections.Generic.List`1[[Service.Models.SettingDetailsModel, Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
Mapping to type Repository.Entities.ProductDetailsEntity from source type Service.Models.ProductDetailsModel
Exception of type 'AutoMapper.AutoMapperConfigurationException' was thrown.
Теперь реализация Mapper содержит
Mapper.CreateMap<SettingDetails, SettingDetailsModel>();
Mapper.CreateMap<SideStoneDetails, SideStoneDetailsModel>();
Mapper.CreateMap<ProductDetailsModel, ProductDetailsEntity>();
Mapper.AssertConfigurationIsValid();
В основном его стенает в списки Пользовательского типа. Я не понимаю, где происходит не так: Uptill теперь, что я нашел это:
- Добавить Seperate Сопоставления для различных типов. ПРОВЕРИТЬ !
- Пользовательские функции картографа - но почему? В этом случае я не могу понять, почему это должно быть сделано?
Как это разрешить? Я хочу МАП от Repository Сущности моей ViewModel
Я хочу, чтобы он отображал его из репозитория в ViewModels. Извините, если это неясно. – bhuvin
Вы хотите отобразить из ProductDetailsModel в ProductDetailsEntity? если да, то следуйте советам в моем посте. если нет, замените свой третий оператор сопоставления. – wal
Удивительно тупой от меня .... !!! – bhuvin