Un opérateur binaire avec des types incompatibles a été détecté. Trouvé opérande de type 'Edm.Guid " et " Edm.String' pour l'opérateur de type "Égales"

Je suis l'exception suivante lors de l'appel de OData de mon Kendo ListView:

"Un opérateur binaire avec des types incompatibles a été détecté. Trouvé opérande
types de Edm.Guid " et " Edm.Chaîne' de l'opérateur nature "Égaux","

DÉCODÉ FILTRE:
$filtre=OrganizationId eq '4c2c1c1e-1838-42ca-b730-399816de85f8'

CODÉ FILTRE:
%24filter=OrganizationId+eq+%274c2c1c1e-1838-42ca-b730-399816de85f8%27

ONT ÉGALEMENT UNSUCESSFULLY ESSAYÉ CES FILTRES:
$filtre=OrganizationId eq guid'4c2c1c1e-1838-42ca-b730-399816de85f8'
$filtre=OrganizationId eq cast('4c2c1c1e-1838-42ca-b730-399816de85f8', Edm.Guid)

MON WEB, LES APPELS DE L'API RESSEMBLE:

//GET: odata/Sites
[HttpGet]
[EnableQuery]
public IHttpActionResult GetSites(ODataQueryOptions<Site> queryOptions)
{
    IQueryable<Site> sites = null;

    try
    {
        queryOptions.Validate(_validationSettings);
        sites = _siteService.GetAll().OrderBy(x => x.SiteName);

        if (sites == null)
            return NotFound();
    }
    catch (ODataException ex)
    {
        TraceHandler.TraceError(ex);
        return BadRequest(ex.Message);
    }

    return Ok(sites);
}

MON JAVASCRIPT KENDO SOURCE DE DONNÉES RESSEMBLE À:

var dataSource = new kendo.data.DataSource({

    filter: { field: "OrganizationId", operator: "eq", value: that.settings.current.customer.id },
    schema: {
        data: function (data) {
            return data.value;
        },
        total: function (data) {
            return data.length;
        }
    },
    serverFiltering: true,
    serverPaging: true,
    transport: {
        parameterMap: function (options, type) {

            var paramMap = kendo.data.transports.odata.parameterMap(options);

            //Remove invalid Parameters that Web API doesn't support
            delete paramMap.$inlinecount; //<-- remove inlinecount
            delete paramMap.$format; //<-- remove format
            delete paramMap.$callback; //<-- remove callback

            //PLEASE NOTICE: That I have tried reformatting unsuccessfully
            //paramMap.$filter = paramMap.$filter.replace("OrganizationId eq ", "OrganizationId eq guid");
            //paramMap.$filter = "OrganizationId eq cast('81de6144-987c-4b6f-a9bd-355cb6597fc1', Edm.Guid)";

            return paramMap;
        },
        read: {
            url: buildRoute('odata/Sites')
            , dataType: 'json'
        }
    },
    type: 'odata'
});
J'ai vu plusieurs resources en indiquant qu'en utilisant le guid'[VALEUR]' la syntaxe est correcte, pourriez-vous vérifier qu'?
J'ai vu et essayé dans cette tentative (noté ci-dessus): $filtre=OrganizationId eq guid'4c2c1c1e-1838-42ca-b730-399816de85f8 " pensez-vous que c'est (en quelque sorte) mis en forme de façon incorrecte? Je suis coincé.
Pouvez-vous l'appeler avec succès par fiddler ou directement dans le navigateur au lieu de via Kendo?
Nan...en entrant directement l'URL est la façon dont j'ai été capable de voir le message (ci-dessus)
Quelle est la version de OData utilisez-vous? Le guid'...' syntaxe n'était nécessaire que pour les anciennes versions de OData, lorsque nous avons normalisé nous avons simplifié de ce juste " ... " comme dans votre "DÉCODÉ FILTRE". Vous pouvez poster une repro projet quelque part?

OriginalL'auteur Prisoner ZERO | 2015-03-11