c# - usar - No se puede convertir la expresión lambda para escribir ''cadena'' porque no es un tipo de delegado
no se puede convertir expresión lambda en el tipo delegado (5)
Creo que te estás perdiendo using System.Linq;
de esta clase de sistema.
y también agregar using System.Data.Entity;
al código
Esta pregunta ya tiene una respuesta aquí:
Estoy usando una expresión lambda LINQ así:
int Value = 1;
qryContent objContentLine;
using (Entities db = new Entities())
{
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();
}
Sin embargo, recibo el siguiente error:
No se puede convertir la expresión lambda para escribir ''cadena'' porque no es un tipo de delegado
En mi caso, tuve que agregar using System.Data.Entity;
Mi caso resolvió que estaba usando
@Html.DropDownList(model => model.TypeId ...)
utilizando
@Html.DropDownListFor(model => model.TypeId ...)
lo resolverá
Para las personas que simplemente tropezaron con esto ahora, resolví un error de este tipo que fue arrojado con todas las referencias y utilizando declaraciones colocadas correctamente. Evidentemente hay cierta confusión al sustituir en una función que devuelve DataTable en lugar de llamarlo en una DataTable declarada. Por ejemplo:
Esto funcionó para mí:
DataTable dt = SomeObject.ReturnsDataTable();
List<string> ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();
Pero esto no:
List<string> ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();
Todavía no estoy 100% seguro de por qué, pero si alguien se siente frustrado por un error de este tipo, pruébelo.
Si no está relacionado con la falta de uso de las directivas establecidas por otros usuarios, esto también sucederá si hay otro problema con su consulta.
Eche un vistazo a la lista de errores del compilador VS: por ejemplo, si la variable "Valor" en su consulta no existe, tendrá el error "lambda en cadena" y algunos errores después de otro más relacionado con lo desconocido / campo erróneo.
En tu caso, podría ser:
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();
Errores:
Error 241 No se puede convertir la expresión lambda para escribir ''cadena'' porque no es un tipo de delegado
Error 242 Delegado ''System.Func <..>'' no toma 1 argumentos
Error 243 El nombre ''Valor'' no existe en el contexto actual
Corrige el error variable "Valor" y los otros errores también desaparecerán.