Pregunta

Estoy tratando de filtrar los datos de EntityReference sin suerte. Sin la cláusula WHERE se ejecuta bien con la cláusula WHERE obtengo el siguiente error:

El servidor no proporcionó una respuesta significativa; Esto podría ser causado por un desajuste de contrato, un cierre prematuro de sesión o un error de servidor interno.

Aquí está mi método que llama a CRMService:

/// <summary>
        /// Gets the categories.
        /// </summary>
        /// <returns></returns>
        public IEnumerable<category> GetCategoriesExcludingSomething()
        {
            IEnumerable<category> data = CrmClient.categorySet.OrderBy(x => x.SubCategory).ThenBy(x => x.itf_name);

            return data.Where(x => x.SubCategory.ToString() == "SomethingToExclude");
        }

He intentado usar Subcategory.name también, pero da el mismo error. Creo que está relacionado con el hecho de que usa la vinculación temprana o algo así como no pude obtener información útil al depurar.

Cualquier consejo o ayuda sería genial, esto debería ser fácil:/

¿Fue útil?

Solución

Según esta documentación: http://technet.microsoft.com/en-us/library/gg328328.aspx

El proveedor de consultas LINQ admite un subconjunto de los operadores LINQ. No se admiten todas las condiciones que se pueden expresar en LINQ.

pedidoAdmite el pedido por atributos de la entidad, como el contacto. Fullname.

Lo que podría hacer es usar primero la cláusula WHERE, y luego usar el método tolist (). Después de esto, tendrá una recopilación de datos sobre los cuales puede usar todas las consultas LINQ comunes.

Además, tratar de ordenar una EntityReference no es la buena manera de hacerlo. Deberías intentar ordenar así:

OrderBy(x => x.SubCategory.Id)

dónde: El lado izquierdo de la cláusula debe ser un nombre de atributo y el lado derecho de la cláusula debe ser un valor. No puede configurar el lado izquierdo en una constante. Ambos lados de la cláusula no pueden ser constantes. Admite las funciones de cadena contiene, inicio con fines de finalización y igual

Lo que podría hacer aquí es filtrar los valores por ID o por el nombre (esa es la única información relevante que tendrá de la EntityReference en este caso).

Where(x => x.SubCategory.Name == "CategoryNameToExclude");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top