2009-02-26 11 views
0

(Ceci concerne SitkaSoapService de Microsoft, dans la référence de service à https://database.windows.net/soap/v1/)SQL Data Services - Interrogation des null

J'utilise SitkaSoapServiceClient pour accéder à ma base de données des services de données SQL par SOAP.

Je peux interroger les données en passant une déclaration LINQ dans une chaîne, tels que:

Scope scope = new Scope(); 
scope.AuthorityId = authorityId; 
scope.ContainerId = containerId; 

using (SitkaSoapServiceClient proxy = GetProxy()) 
    return proxy.Query(scope, "from e in entities where e[\"FirstName\"] == \"Bob\" select e"); 

Cependant, je ne peux pas comprendre comment interroger pour une valeur de propriété nulle (c.-à-trouver des entités sans que la propriété).

Je pense pouvoir dire:

return proxy.Query(scope, "from e in entities where e[\"FirstName\"] == null select e"); 

... mais jette un FaultException<>, en disant « Le nom « nul » n'a pas pu être trouvé »

Toutes les idées?

Répondre

1

Vous pouvez vérifier non nulle comme ceci:

where e["FirstName"] >= "" 

de sorte que le null vérifier devient:

where !(e["FirstName"] >= "") 

Un peu méchant, mais cela fonctionne. Peut-être y at-il un meilleur moyen, mais je ne le trouve pas ...

-1

Je ne suis pas familier avec le service que vous essayez, mais T-SQL voulez quelque chose comme:

return proxy.Query(scope, "from e in entities where e[\"FirstName\"] IS null select e"); 
+0

Excepté le point entier de linq est de pouvoir éviter la syntaxe SQL ... – dkretz

+0

Meh, ça valait le coup d'essayer. Ne fonctionne pas si ... – teedyay