Вот как я это сделал:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreatedDate{ get; set; }
в методе Up () моей миграции:
AddColumn("Agents", "CreatedDate", n => n.DateTime(nullable: false, defaultValueSql: "GETUTCDATE()"));
Попробуйте следующее:
weeksOnPlanSpan = DateTime.Now.Subtract(planStartDate.Value);
Чтобы вычесть две даты, когда ноль, одна или обе из них допускают значение NULL , вы просто вычитаете их . Оператор вычитания поступает правильно; Вам не нужно самостоятельно писать всю логику, которая уже есть в операторе вычитания.
TimeSpan? timeOnPlan = DateTime.Now - user.PlanStartDate;
return timeOnPlan == null ? 0 : timeOnPlan.Days / 7;
Приведите дату-время, допускающую значение NULL, как обычную дату-время.
Если вы знаете, что это не NULL, приведение будет работает нормально.