No se puede convertir la expresión lambda para escribir ‘cadena’ porque no es un tipo de delegado

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

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

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á

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 compiler errors 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.

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 ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList(); 

Pero esto no:

 List ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList(); 

Todavía no estoy 100% seguro de por qué, pero si alguien se siente frustrado por un error de este tipo, pruébelo.