!!
он использует операцию NOT
дважды, !
преобразует значение в boolean
и отменяет его, вот простой пример, чтобы увидеть, как работает !!
:
Поначалу у вас есть:
var zero = 0;
Затем вы выполняете !0
, он будет преобразован в boolean и будет оценен как true
, потому что 0 - falsy
, поэтому вы получаете обратное значение и преобразуется в boolean, поэтому он получает оценку true
.
!zero; //true
, но мы не хотим иметь обратную логическую версию значения, поэтому мы можем отменить ее снова, чтобы получить наш результат! Вот почему мы используем другой !
.
В принципе, !!
убеждают нас, что полученное значение является логическим, а не фальшивым, правдивым или строковым и т. Д. ...
So это похоже на использование функции Boolean
в javascript, но простой и более короткий способ преобразования значения в boolean:
var zero = 0;
!!zero; //false
Проблема в том, что вы не украсили поле Id
объекта [JsonProperty("id")]
, поэтому встроенный транслятор LINQ to SQL не может его преобразовать. Его можно найти в документации космонавта
Однако вы не должны запрашивать документы, используя их идентификатор. Это будет выполнять запрос вместо чтения, и это будет стоить гораздо больше RU и больше времени. Вместо этого используйте метод FindAsync
, который будет выполнять прямое чтение и будет стоить всего 1RU.