Службы данных SQL - запрос для нуля

(Это относится к SitkaSoapService от Microsoft, в справочнике услуг по адресу https://database.windows.net/soap/v1/)

Я использую SitkaSoapServiceClient для доступа к моей базе данных служб данных SQL с помощью SOAP.

Я могу запрашивать данные, передавая оператор linq в строку, например:

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");

Однако я не могу понять, как запросить нулевое значение свойства (то есть найти объекты без этого свойства).

Я ожидаю, что смогу сказать:

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

... но это бросает FaultException<>, говоря: "Нулевое имя не может быть найдено"

Есть идеи?

2 ответа

Решение

Вы можете проверить для не нуль, как это:

where e["FirstName"] >= ""

поэтому нулевая проверка становится:

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

Немного противно, но это работает. Может быть, есть лучший способ, но я не могу его найти...

Я не знаком с сервисом, который вы пробуете, но T-SQL хотел бы что-то вроде:

return proxy.Query(scope, "from e in entities where e[\"FirstName\"] IS null select e");
Другие вопросы по тегам