none
No se puede convertir implicitamente el tipo System.Threading.Tasks<Entidad> en Entidad

    Pregunta

  • Hola estimados:

    Tengo el siguiente código

    public override bool ValidateUser(string username, string password)
            {
                string query = "[WebCalidad].GetUsers";
                SqlParameter[] parameters =
                {    
                    new SqlParameter("@username", username),
                    new SqlParameter("@password", password)
                };
                User requiredUser = _user.FirstGlobalParametros(query,parameters);
                if (requiredUser.UserName != null)
                {
                    return true;
                }
                else
                {
                    return false;
                }
               
            }

    --------------------------------------------Modelo-----------------------------------

    public class User
        {
            public int UserId { get; set; }
            public string UserName { get; set; }
            public string Password { get; set; }
            public string Perfil { get; set; }
        }

    Mando a ejecutar un procedimiento almacenado de forma asíncrona y se lo asigno a una entidad, el problema es que no puedo obtener las propiedades de la entidad como ejempo Username, sino me devuelve propiedades asincronas y me da un error como No se puede convertir implicitamente el tipo System.Threading.Tasks<DataCalidad.Entidades.User> en  DataCalidad.Entidades.User 

    Alguien puede ayudarme en esto.

    Por su atención gracias.

    Probé colocando en el código

    User requiredUser = _user.FirstGlobalParametros(query,parameters).Result;

    Pero se queda pegada la aplicación


    Juan Lobos


    • Editado jhon1121 martes, 26 de junio de 2018 22:16
    martes, 26 de junio de 2018 22:10

Todas las respuestas

  • Correcto, async/await no utiliza ni Task.Wait ni Task.Result para forzar la obtención de un resultado.  En vez de eso se utiliza await.

    public override async Task<bool> ValidateUserAsync(string username, string password)
            {
                string query = "[WebCalidad].GetUsers";
                SqlParameter[] parameters =
                {    
                    new SqlParameter("@username", username),
                    new SqlParameter("@password", password)
                };
                User requiredUser = await _user.FirstGlobalParametros(query,parameters);
                return (requiredUser.UserName != null);
            }


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT


    • Editado webJose miércoles, 27 de junio de 2018 1:08
    miércoles, 27 de junio de 2018 1:07