C# AutoMapper未映射IEnumerable问题
我正在尝试使用Automapper将一个枚举映射到另一个枚举,但不断出现以下控制台错误:C# AutoMapper未映射IEnumerable问题,c#,automapper,C#,Automapper,我正在尝试使用Automapper将一个枚举映射到另一个枚举,但不断出现以下控制台错误: Error CS0266 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Flg.Producer.Snowflake.V2.Proxies.Snowflake.Book>' to 'System.Threading.Tasks.Task<System.Collections.Generic
Error CS0266 Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<Flg.Producer.Snowflake.V2.Proxies.Snowflake.Book>'
to
'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Flg.Producer.Snowflake.V2.Proxies.Snowflake.Book>>'
错误CS0266无法隐式转换类型
'System.Collections.Generic.IEnumerable'
到
'System.Threading.Tasks.Task'
代码块:
public Task<IEnumerable<Book>> GetAllBooks()
{
Task<IEnumerable<BookResult>> result;
using (IDbConnection snowflakeDbConnection = _dbConnection)
{
result = snowflakeDbConnection.QueryAsync<BookResult>(string.Format(SelectBooks));
}
var books = mapper.Map<IEnumerable<Book>>(result);
return books;
}
public class Book: IRequest
{
public string Id { get; set; }
public string Name { get; set; }
}
public class BookResult : IRequest
{
public string Id { get; set; }
public string Name { get; set; }
}
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
CreateMap<IEnumerable<SnowflakeDb.BookResult>, IEnumerable<Book>>();
}
}
公共任务GetAllBooks()
{
任务结果;
正在使用(IDbConnection雪花数据库连接=_数据库连接)
{
结果=snowflakeDbConnection.QueryAsync(string.Format(SelectBooks));
}
var books=mapper.Map(结果);
还书;
}
公共类书:IRequest
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
}
公共类图书结果:IRequest
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
}
公共类自动映射配置文件:配置文件
{
公共自动映射配置文件()
{
CreateMap();
}
}
任何帮助或正确的指导都将受到感谢。谢谢。这不是自动映射问题,因为从
IEnumerable
到任务
不匹配
请更改以下代码块:
public async Task<IEnumerable<Book>> GetAllBooks()
{
Task<IEnumerable<BookResult>> result;
using (IDbConnection snowflakeDbConnection = _dbConnection)
{
result = await snowflakeDbConnection.QueryAsync<BookResult>(string.Format(SelectBooks));
}
var books = mapper.Map<IEnumerable<Book>>(result.ToList());
return books;
}
你不是在等你整洁的QueryAsync 等待查询同步的那一行,然后确保您的映射是好的,并且在启动DI容器中。 添加services.AddAutomapper(AppDomain.CurrentDomain.GetAssemblys()) 此外,配置文件构造函数中的CreateMap方法不需要IEnumerable,请更改为此=> CreateMap(); 相应地替换MappFromEntity和MappToEntity
您会没事的。请阅读错误消息。
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
CreateMap<SnowflakeDb.BookResult, Book>();
}
}