错误信息:
Mapper未初始化。使用适当的方式调用Initialize 组态。如果您尝试通过a使用映射器实例 容器或其他,请确保您没有任何电话 静态Mapper.Map方法,如果您正在使用ProjectTo或 UseAsDataSource扩展方法,请确保传入 适当的IConfigurationProvider实例。的InnerException: StackTrace:在AutoMapper.Mapper.get_Configuration()
asp.net mvc5控制器代码
public override ActionResult Kendo_Read(DataSourceRequest request, IQueryable<Activity> results)
{
var data = results.ProjectTo<ActivityViewModel>();
var rdata = data.ToDataSourceResult(request);
return Json(rdata);
}
AutoMapper配置代码
public class CRMProfile : Profile
{
CreateMap<Activity, ActivityViewModel>();
}
public static class Configuration
{
public static MapperConfiguration MapperConfiguration()
{
return new MapperConfiguration(x =>
{
x.AddProfile(new CRMProfile());
}
}
}
注册码
internal static MapperConfiguration MapperConfiguration { get; private set; }
public class MvcApplication : System.Web.HttpApplication
{
MapperConfiguration = Configuration.MapperConfiguration();
}
i home返回数据类型在控制器中是IQueryable,而不是List, 我在stackoverflow中看到Question和问题,但无法解决我的问题。
答案 0 :(得分:1)
从AutoMapper's source code您可以看到,当配置未初始化时,将抛出此异常:
public static IConfigurationProvider Configuration
{
get => _configuration ?? throw new InvalidOperationException(InvalidOperationMessage);
private set => _configuration = value;
}
确保Mapper
使用静态属性正确配置或使用IoC容器正确注册(请参阅documentation了解详细信息)。你可能错过了Mapper.Initialize()
电话吗?