Probleme mit einem OData-Filter und einem Guid-Feld

8

Ich versuche, Code mit OData arbeiten zu lassen. Das folgende Bit des Codes scheint nicht zu funktionieren.

ds ist OpenDataServiceProxy.

adapterTypeId ist die Zeichenfolgendarstellung eines Guid.

Adaptername ist ein Zeichenfolgenname

%Vor%

Die obige Zeile enthält den folgenden Fehler:

Ausdruck des Typs 'System.Boolean' an Position 0 erwartet.

Wenn ich den Guid-Abschnitt des Filters entferne, so dass er nur den "Name" -Teil verwendet, funktioniert es gut.

Das DataAdapters-Tabellenfeld "DataAdapterTypeId" ist ein Fremdschlüssel für das DataAdapterTypeId-Feld "DataAdapterTypes".

Kann jemand sehen, was ich falsch mache?

------------------- EDIT ----------------------

OK, ich habe den Filter wie unten gezeigt geändert. Ich erhalte keinen Fehler mehr, bekomme aber viele Ergebnisse zurück anstatt einen Datensatz, der dem Filter entspricht. Kann jemand sagen, warum es nicht filtert?

%Vor%     
Retrocoder 08.10.2010, 11:31
quelle

3 Antworten

14

Der Guid-Wert muss wie guid '' formatiert werden - siehe hierzu: Ссылка Ich weiß nicht, was Sie mit der DataAdapterType.DataAdatperTypeId erreichen wollten, aber das Punktzeichen hat keine spezielle Bedeutung im Filterausdruck, also macht es wahrscheinlich nicht das, was Sie wollten. Wenn Ihre Entität "DataAdapters" über Entitäten vom Typ "DataAdapterType" verfügt, die dann über die Eigenschaft "DataAdapterTypeId" vom Typ "GUID" verfügen, können Sie sie einfach mit

filtern %Vor%     
Vitek Karas MSFT 09.10.2010, 19:41
quelle
1

Sie finden den aktualisierten URL-Konventionssatz hier .

    
Stinky Buffalo 04.03.2015 18:15
quelle
1

Mit OData v4 funktioniert was für mich auf ASP.NET

  

'DataAdapterTypeId eq' + adapterTypeId

Beachten Sie keine Anführungszeichen oder Umordnungen um den GUID-Wert. Es wird einen Fehler ausgeben, wenn adapterTypeId keine GUID ist.

    
m0s 24.09.2016 22:39
quelle

Tags und Links