Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未将where子句中带DateTime.Add()的EntityFramework核心2.1 linq查询转换为SQL_C#_Sql_Linq To Sql_Entity Framework Core - Fatal编程技术网

C# 未将where子句中带DateTime.Add()的EntityFramework核心2.1 linq查询转换为SQL

C# 未将where子句中带DateTime.Add()的EntityFramework核心2.1 linq查询转换为SQL,c#,sql,linq-to-sql,entity-framework-core,C#,Sql,Linq To Sql,Entity Framework Core,我需要将两列中的两个DateTime值合并为一个DateTime值。第一个保存日期部分,第二个保存时间部分。现在,我想获取日期并将时间添加到其中,以便使用它根据参数对其进行适当过滤 我这里的问题是,我无法将组合转换为SQL,从而在SQL Server而不是客户端上执行 到目前为止我所尝试的: 在下面的列表中,“ColumnA”是带有日期部分值的第一列,“ColumnB”是带有时间部分的第二列。“DateParameter”是要检查的注入参数 1) .Where(a => (a.Column

我需要将两列中的两个DateTime值合并为一个DateTime值。第一个保存日期部分,第二个保存时间部分。现在,我想获取日期并将时间添加到其中,以便使用它根据参数对其进行适当过滤

我这里的问题是,我无法将组合转换为SQL,从而在SQL Server而不是客户端上执行

到目前为止我所尝试的:
在下面的列表中,“ColumnA”是带有日期部分值的第一列,“ColumnB”是带有时间部分的第二列。“DateParameter”是要检查的注入参数

1) .Where(a => (a.ColumnA.Date + a.ColumnB.TimeOfDay) <= DateParameter);

1).其中(a=>(a.ColumnA.Date+a.ColumnB.TimeOfDay)(a.ColumnA.Date.Add(a.ColumnB.TimeOfDay))(a.ColumnA.Date.AddHours(a.ColumnB.Hour).AddMinutes(a.ColumnB.Minute).AddSeconds(a.ColumnB.Second))(新的日期时间(a.ColumnA.Year,a.ColumnB.Month,a.ColumnB.Day,a.Hour,a.ColumnB.Minute,a.Second)(3)对我有效(EF Core 3.1.3,SqlServer)EF Core 2.1不会得到任何增强,因此您必须使用支持的功能-EF Core 3.1中的
DateTime
错误仍在修复中。升级到EF Core 3.1.4。现在我遇到了一个例外,即某些部分不受支持或查询无法完全翻译,我应该明确切换到客户端评估。特别是datepart值“hour”不受支持,它是“DateTime.AddHour()”的SQL等价物(3)适用于我(EF Core 3.1.3,SqlServer)EF Core 2.1不会得到任何增强,因此您必须使用支持的功能-EF Core 3.1中的
DateTime
错误仍在修复中。升级到EF Core 3.1.4。现在我遇到了一个例外,即某些部分不受支持或查询无法完全翻译,我应该明确切换到客户端评估。具体而言,不支持datepart值“hour”,它是“DateTime.AddHour()”的SQL等价物。
2) .Where(a => (a.ColumnA.Date.Add(a.ColumnB.TimeOfDay)) <= DateParameter);
3) .Where(a => (a.ColumnA.Date.AddHours(a.ColumnB.Hour).AddMinutes(a.ColumnB.Minute).AddSeconds(a.ColumnB.Second)) <= DateParameter);
4) .Where(a => (new DateTime(a.ColumnA.Year, a.ColumnA.Month, a.ColumnA.Day, a.ColumnB.Hour, a.ColumnB.Minute, a.ColumnB.Second)) <= DateParameter);