2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
假設(shè)_context.Vehicles.ToList()返回一個(gè)IList<Vehicle>,您可以執(zhí)行以下操作:
[HttpGet]
public IEnumerable<VehicleDto> GetVehicles()
{
return Mapper.Map<IList<Vehicle>, List<VehicleDto>>(_context.Vehicles.ToList());
}
這還假設(shè)您已經(jīng)使用以下內(nèi)容配置了從Vehicle到的映射VehicleDto:
cfg.CreateMap<Vehicle, VehicleDto>();
或者,您可以使用 LINQ 的 select 運(yùn)算符并執(zhí)行以下操作來(lái)調(diào)用Map單個(gè)項(xiàng)目而不是整個(gè)集合:
[HttpGet]
public IEnumerable<VehicleDto> GetVehicles()
{
return _context.Vehicles.Select(v => Mapper.Map<Vehicle, VehicleDto>(v)).ToList();
}
更新: 切換Vehicle并VehicleDto反映 OP 在評(píng)論中顯示的信息,表明他將數(shù)據(jù)存儲(chǔ)Vehicle在數(shù)據(jù)庫(kù)中,并且他的方法應(yīng)返回VehicleDto.

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
您之前是否定義了映射器類?
您在啟動(dòng)時(shí)加載類。
App_Start 文件夾。創(chuàng)建一個(gè)名為 MapModelEntity.cs 的類
public class MapModelEntity
{
public static void RegisterMapping()
{
Mapper.Initialize(config =>
{
config.CreateMap<StatusEntity, StatusTypeModel>().ReverseMap(); // For bothways
config.CreateMap<Vehicle, VehicleDto>() // For custom mapping
.ForMember(dest => dest.Prop1,
opts => opts.MapFrom(src => src.Prop1));
}
添加對(duì) Global.asax 的引用
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
**MapModelEntity.RegisterMapping();**
}
在控制器中
var Result = _context.Vehicles.ToList();
var Mapped = Mapper.Map<VehicleDto>(Result);
- 2 回答
- 0 關(guān)注
- 261 瀏覽
添加回答
舉報(bào)