query from consultas linq dynamics-crm dynamics-crm-2011

from - Error dentro de la instrucción Where en LINQ



select linq to sql c# (2)

Por alguna razón en mi donde dice que "nombre" no existe en la Entidad de Oportunidad. Pero está configurado para la Entidad del Usuario del Sistema. ¿Alguna idea de por qué se está confundiendo? ¡Gracias!

var linqQuery = (from r in gServiceContext.CreateQuery("opportunity") join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] where r["new_leadstatus"].Equals("100000004") && u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) select new { AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], Account = !r.Contains("name") ? string.Empty : r["name"] });


Asegúrese de colocar cada cláusula where en su propia línea según las pautas de Microsoft .

La cláusula where aplica un filtro a los resultados, a menudo utilizando una expresión booleana. El filtro especifica qué elementos excluir de la secuencia de origen. Cada cláusula where solo puede contener condiciones contra un solo tipo de entidad. Una condición compuesta que implica múltiples entidades no es válida. En cambio, cada entidad debe filtrarse en cláusulas where separadas.

var linqQuery = from r in gServiceContext.CreateQuery("opportunity") join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] where r["new_leadstatus"].Equals("100000004") where u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) select new { AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], Account = !r.Contains("name") ? string.Empty : r["name"] };


Usted define su referencia a la entidad Opportunity como ''r'', pero está tratando de leer el nombre de ''u''

from r in gServiceContext.CreateQuery("opportunity") u["firstname"]

Cambia el final de tu a donde

r["firstname"].Equals(rsmFirstName)