Pun*_*nit 5 .net c# linq datetime entity-framework
我们有 EF 6.1,它在执行 LINQ to SQL 查询时将所有 .NET 日期时间字段转换为 datetime2(SQL),但由于日期比较,这在某些情况下会失败。有没有一种方法可以强制 EF 使用 datetime 而不是 datetime2。仅供参考,数据库中的列是日期时间。我已经看到强制所有日期时间使用 datetime2 的答案,但找不到任何将日期时间保持为日期时间的内容。EF 将 datetime 转换为 datetime2 的任何特定原因。
只是为了更清楚地说明 DB 列中是日期时间,C# 属性被声明为日期时间。当 EF 将 LINQ 转换为 SQL 查询时,它会将特定日期时间字段作为 datetime2 而非 datetime 发送。列 Edate 和 Pdate 是日期时间,我传递了一个带有日期时间值的过滤条件,但是当我在探查器中看到它时,它会转换为 datetime2。
exec sp_executesql N'SELECT TOP (1)
[Project1].[ID] AS [ID]
FROM ( SELECT
[Extent2].[ID] AS [ID]
FROM [DBO].[TableB] AS [Extent1]
INNER JOIN [DBO].[TableA] AS [Extent2] ON [Extent1].[ID] = [Extent2].[ID]
WHERE ([Extent2].[EDate] <= @p__linq__1) AND ([Extent1].[Pdate] > @p__linq__2)
) AS [Project1]
ORDER BY [Project1].[DateP] DESC',N'@p__linq__1 datetime2(7),@p__linq__2 datetime2(7)',
@p__linq__1='2018-06-24 16:43:34.7830000',@p__linq__2='2018-06-24 16:43:34.7830000'
Run Code Online (Sandbox Code Playgroud)
谢谢,普尼特
您需要安装Nuget包:Microsoft.EntityFrameworkCore.SqlServer。安装后,您可以在属性中使用 HasColumnType("datetime") 。:)
归档时间: |
|
查看次数: |
4428 次 |
最近记录: |