Аргумент, который я услышал, - то, что фронтенд должен иметь эти бизнес-правила. Внешние ключи, "добавляют ненужные издержки", когда Вы не должны позволять вставки, которые повреждают Ваши ограничения во-первых. Я соглашаюсь с этим? Нет, но именно это я всегда слышал.
РЕДАКТИРОВАНИЕ: Мое предположение, он обращался к ограничения внешнего ключа , не внешние ключи как понятие.
Вопрос скорее философский; если бы Рождество было завтра, вы бы считали, что осталось 1 день или 0 дней. Если вы включите в свои вычисления завтрашний день, ответ будет 0.
Ваша проблема исчезнет, если вы замените:
DateTime.Now
на:
DateTime.Today
, поскольку расчет разницы будет производиться в течение целых дней.