Сумма () вызывает исключение вместо того, чтобы возвратиться 0 когда никакие строки

Если вы включите флаг --dry-run, это проверит вашу команду rclone без изменения или передачи каких-либо файлов.

Из документации rclone для пробного запуска :

-n, --dry-run

Выполните пробный запуск без постоянных изменений. Используйте это, чтобы увидеть, что будет делать rclone, фактически не делая этого. Полезно при настройке команды синхронизации, которая удаляет файлы в месте назначения.

blockquote>

Попробуйте опустить этот флаг и снова запустить команду, например так:

rclone sync -v "/var/html/**" "Yandex:Backups/git"

18
задан John Saunders 17 April 2013 в 04:39
поделиться

4 ответа

Это - то, с чем я закончил на данный момент:

.Sum(æ => (decimal?) æ.Weight) ?? 0.0M,

Это работает как очарование.

я все еще предпочел бы иметь SumOrZero, я мог использовать, который будет работать точно как постоянный клиент Sum кроме него, никогда не возвращался бы null ни по какой причине. Как другие отметили, это было бы довольно легко сделать для IEnumerable, но немного более неприглядный для создания для IQueryable, таким образом, это будет работать с Linq2SQL, и т.д. Таким образом, я просто оставлю его в этом на данный момент. Хотя, если кто-то скучает один день и действительно пишет SumOrZero для IQueryable, который работает с Linq2SQL для всех числовых типов, сообщите мне :D

22
ответ дан 30 November 2019 в 08:04
поделиться

Вы хотите использовать DefaultIfEmpty, который возвратит IEnumberable с единственным элементом 0, и это будет семантически тем же, как Вы требуете.

, Поскольку у Вас есть nullable десятичное число, необходимо будет, вероятно, использовать 2-ю версию метода, берущего 2 параметра.

0
ответ дан 30 November 2019 в 08:04
поделиться

Прием, который Вы уже дали (.Sum(æ => (decimal?) æ.Weight) ?? 0.0M), о лучшем, о котором я могу думать для этого сценария, когда он выполняется как запрос в базе данных. Немного раздражающий, но существуют худшие вещи...

В отличие от LINQ к объектам, Вы не можете только добавить свой собственный дополнительный метод, поскольку он должен быть отображен базовым поставщиком.

3
ответ дан 30 November 2019 в 08:04
поделиться

В LINQ к Объектам это было бы легко. С LINQ к SQL это будет более твердо. Вы могли записать свой собственный дополнительный метод который названный Queryable.Sum с выражением, созданным от нормального с броском к nullable типу. Я подозреваю, что необходимо было бы сделать?? 0m в коде вызова все же. Другими словами, Вы могли сделать:

.SumOrNull(æ => æ.Weight) ?? 0M,

, Где подпись для.SumOrNull была бы:

public static decimal? SumOrNull<TSource, decimal>(this IQueryable<TSource>,
    Func<TSource,decimal> projection)

Вы могли в основном записать это для всех типов значения, поддерживаемых в Queryable. Вы могли запись это в общем, и называть соответствующий метод в Queryable с помощью отражения, но это было бы неприглядно также.

я думаю, что Вы лучше всего выключены с тем, что Вы имеете, чтобы быть честными.

5
ответ дан 30 November 2019 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: