使用DateTime和TimeSpan net core 2.0和EF的算术值

时间:2018-04-13 10:30:54

标签: entity-framework asp.net-core

我有DateTime变量

 private readonly TimeSpan thirtydays = new TimeSpan(30, 0, 0, 0);
    public DateTime RegistrationDate { get; set; }
    public DateTime DueDate { get; set; }

和TimeSpan用于计算未来的日期

process.DueDate = DateTime.Now + thirtydays;

在过程生命期间可以更改截止日期。我想列出DueDate发生变化的所有流程。

.Where(d => d.DueDate!=(d.RegistrationDate + thirtydays))

但是我收到了错误

InvalidCastException: Failed to convert parameter value from a TimeSpan to a DateTime.

System.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__108_0(Task<SqlDataReader> result)

1 个答案:

答案 0 :(得分:3)

您可以使用

.Where(d => d.DueDate != d.RegistrationDate.AddDays(30))

在Entity Framework核心中,这被转换为SQL DATEADD函数。