.NET 5.0 Asegúrese de que el tipo de retorno pueda ser mapeado por el proveedor actual.
Modelo:
public partial class FN_Result
{
public string UserImage { get; set; }
public string UserName { get; set; }
public string Title { get; set; }
public int messageId { get; set; }
public int SenderId { get; set; }
public int ReceiverId { get; set; }
public string MessageText { get; set; }
public bool MessageStatus { get; set; }
public bool IsAdmin { get; set; }
public bool IsClinician { get; set; }
public string CreatedOn { get; set; }
public int RowNum { get; set; }
}
Constructor y declaración de variables:
private readonly IDbConnection db;
public DbContext(DbContextOptions<DbContext> options, IConfiguration configuration)
: base(options)
{
this.Configuration = configuration;
this.db = new SqlConnection(this.Configuration.GetConnectionString("PortalDb"));
}
Tenemos la siguiente DbFunction en un proyecto MVC .NET 5.0:
[DbFunction("namespace", "FN_Name")]
public async Task<IEnumerable<FN_Result>> FN_MethodName(int id)
{
var parameters = new DynamicParameters();
parameters.Add("@id", id);
return await this.db.QueryAsync<FN_Result>("[namespace].[FN_Name](@id)", parameters, commandType: CommandType.Text);
}
IEnumerabledb.QueryAsync<FN_Result>
.
Sin embargo, arroja el siguiente mensaje de error: Message=La DbFunction ‘dbPortalContext.FN_Name([System.Int32, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e])’ tiene un tipo de retorno no válido ‘Task<IEnumerable
También hemos intentado convertirlo en una lista, sin éxito.
davy.ai
El error indica que el tipo de retorno
Task<><fn_result>>
no puede ser mapeado por el proveedor actual.Para resolver este problema, es posible que necesite cambiar el tipo de retorno a algo que pueda ser mapeado por el proveedor actual. Una opción es convertir el resultado en una lista antes de devolverlo:
Alternativamente, podría intentar utilizar un proveedor diferente que admita mapeo del tipo de retorno
Task<><fn_result>>
.