Estoy usando Entity Framework en mi código basado en C#. Me encuentro con una rareza inesperada y estoy buscando sugerencias.Entity Framework - No se puede convertir la expresión lambda para escribir 'cadena' porque no es un tipo de delegado
Caso 1, 2, 3, 4 ... Proyectos:
RivWorks.dll
RivWorks.Service.dll
RivWorks.Alpha.dll
muestras (todos de estos trabajos):
RivWorks.Alpha.dll:
public static bool EndNegotitation(long ProductID)
{
var product = (from a in _dbFeed.AutoWithImage
where a.AutoID == ProductID select a).FirstOrDefault();
...
}
RivWorks.Service.dll
public static RivWorks.Model.NegotiationAutos.AutoWithImage
GetProductById(long productId)
{
var myProduct = from a in _dbFeed.AutoWithImage
where a.AutoID == productId select a;
return myProduct.FirstOrDefault();
}
public static List<RivWorks.Model.NegotiationAutos.AutoWithImage>
GetProductByCompany(Guid companyId)
{
var myProduct = from a in _dbFeed.AutoWithImage
where a.CompanyID == companyId select a;
return myProduct.ToList();
}
etc
Caso "rareza":
(proyecto WCF) RivWorks.Web.Service.dll
Contiene las mismas referencias que los otros proyectos.
public NegotiateSetup GetSetup(string method, string jsonInput)
{
...
long.TryParse(ProductID, out result);
var product = (from a in _dbFeed.AutoWithImage
where a.AutoID == result select a).FirstOrDefault();
...
}
Estoy consiguiendo este error de tiempo de compilación (la palabra "donde" se destaca en mi editor):
No se puede convertir la expresión lambda al tipo 'cadena' porque no es un tipo de delegado
¿Alguna idea de qué podría causar esto?
Eso suena extraño. Si elimina la llamada a 'FirstOrDefault', ¿qué ocurre?Obviamente, fallará cuando trates de usar 'producto' luego, ¿pero compila esa declaración? –
Además, si lo cambia a 'var product = _dbFeed.AutoWithImage.Where (a => a.AutoID == result);' ¿qué sucede entonces? Saquemos las expresiones de consulta de la mezcla ... –
Todos esos ejemplos fallan. Sin embargo, revisé las instrucciones de Uso en todos mis fragmentos de código y descubrí que me faltaba uno: Usar System.Linq; Eso corrigió el error. –