ventajas usar una tipo puede expresión expresiones español ejemplos delegados delegado cómo convertir consulta aprender anonimos c# asp.net linq lambda

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

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.