I'm getting the following error when returning an object when validating the login:
You can not implicitly convert the type 'System.Linq.IQueryable' 'to' Business.clsUser.ValidSessionU '. An explicit conversion already exists (check if a conversion is missing)
My Code is as follows:
public class ValidarSesionU
{
public Int64 usu_IDUsuario { get; set; }
public string usu_nombre { get; set; }
public Int32 usu_IDRol { get; set; }
}
public ValidarSesionU ValidarSesion(string stUsuario, string stPassword)
{
try
{
using (BDGestionReclamosEntities BD = new BDGestionReclamosEntities())
{
var iqValidarSesion = from x in BD.Usuario
where x.usu_nombre == stUsuario && x.usu_contraseña == stPassword
select new ValidarSesionU
{
usu_IDUsuario = x.usu_IDUsuario,
usu_nombre = x.usu_nombre,
usu_IDRol = x.usu_IDRol
};
return iqValidarSesion; //ACÁ DEVUELVE EL ERROR
}
}
catch (Exception ex)
{
return null;
}
}
The only way I could solve it is by converting the object to List
:
public List<ValidarSesionU> ValidarSesion(string stUsuario, string stPassword)
{
try
{
using (BDGestionReclamosEntities BD = new BDGestionReclamosEntities())
{
var iqValidarSesion = from x in BD.Usuario
where x.usu_nombre == stUsuario && x.usu_contraseña == stPassword
select new ValidarSesionU
{
usu_IDUsuario = x.usu_IDUsuario,
usu_nombre = x.usu_nombre,
usu_IDRol = x.usu_IDRol
};
return iqValidarSesion.ToList<ValidarSesionU>();
}
}
catch (Exception ex)
{
return null;
}
}
But my intention is to return an object, not a list, since it is only 1 record that must be returned.
How can I convert to return an object and not list it?
FINALLY I HAVE THIS MY CODE:
public class ValidarSesionU
{
public Int64 usu_IDUsuario { get; set; }
public string usu_nombre { get; set; }
public Int32 usu_IDRol { get; set; }
public string usu_Password { get; set; }
}
public ValidarSesionU ValidarSesion(string stUsuario, string stPassword)
{
try
{
using (BDGestionReclamosEntities BD = new BDGestionReclamosEntities())
{
var iqValidarSesion = from x in BD.Usuario
select new ValidarSesionU
{
usu_IDUsuario = x.usu_IDUsuario,
usu_nombre = x.usu_nombre,
usu_IDRol = x.usu_IDRol,
usu_Password = x.usu_contraseña
};
return iqValidarSesion.FirstOrDefault(x => x.usu_nombre == stUsuario && x.usu_Password == stPassword);
}
}
catch (Exception ex)
{
return null;
}
}