var sent = _context.IsosPassengerNotifications.Any(n => n.Guid == notification.Guid &&
n.DeviceRegistrationId == notification.DeviceRegistrationId &&
DbFunctions.DiffSeconds(n.CreatedAt, TimeService.UtcNow) < 3);
when you hover over the variable in during debug time you get the SQL command for the linq query
The SQL Equivalent:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Guid] AS [Guid],
[Extent1].[DeviceRegistrationId] AS [DeviceRegistrationId],
[Extent1].[DeviceType] AS [DeviceType],
[Extent1].[DeviceLanguage] AS [DeviceLanguage],
[Extent1].[Title] AS [Title],
[Extent1].[CreatedAt] AS [CreatedAt],
FROM [dbo].[Notifications] AS [Extent1]
WHERE (([Extent1].[Guid] = '2019-08-16/356889/977010') OR (([Extent1].[Guid] IS NULL) AND ('2019-08-16/356889/977010' IS NULL))) AND
(([Extent1].[DeviceRegistrationId] = '01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ') OR (([Extent1].[DeviceRegistrationId] IS NULL) AND ('01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ' IS NULL))) AND
((DATEDIFF (second, [Extent1].[CreatedAt], '2019-09-05 10:40:28.727')) < 3)
So how does DBFunctions.DiffSeconds work. It simply converts to a DATEDIFF in SQL server.
So how does the DATEDIFF work?
DATEDIFF simply gets the second parameter and substracts it from the first parameter.
Here you might get a positive or negative value depending on the parameters passed. To examine the subtraction result you could query the database as below
SELECT DATEDIFF (second, [Extent1].[CreatedAt], '2019-09-05 10:20:28.727')
FROM [dbo].[Notifications] AS [Extent1]
WHERE (([Extent1].[Guid] = '2019-08-16/356889/977010') OR (([Extent1].[IsosGuid] IS NULL) AND ('2019-08-16/356889/977010' IS NULL))) AND
(([Extent1].[DeviceRegistrationId] = '01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ') OR (([Extent1].[DeviceRegistrationId] IS NULL) AND ('01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ' IS NULL)))
Or else simply try the following query and try changing the parameter values
select DATEDIFF (second, '2019-09-05 10:20:28.727', '2019-09-05 10:21:28.727')
n.DeviceRegistrationId == notification.DeviceRegistrationId &&
DbFunctions.DiffSeconds(n.CreatedAt, TimeService.UtcNow) < 3);
when you hover over the variable in during debug time you get the SQL command for the linq query
The SQL Equivalent:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Guid] AS [Guid],
[Extent1].[DeviceRegistrationId] AS [DeviceRegistrationId],
[Extent1].[DeviceType] AS [DeviceType],
[Extent1].[DeviceLanguage] AS [DeviceLanguage],
[Extent1].[Title] AS [Title],
[Extent1].[CreatedAt] AS [CreatedAt],
FROM [dbo].[Notifications] AS [Extent1]
WHERE (([Extent1].[Guid] = '2019-08-16/356889/977010') OR (([Extent1].[Guid] IS NULL) AND ('2019-08-16/356889/977010' IS NULL))) AND
(([Extent1].[DeviceRegistrationId] = '01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ') OR (([Extent1].[DeviceRegistrationId] IS NULL) AND ('01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ' IS NULL))) AND
((DATEDIFF (second, [Extent1].[CreatedAt], '2019-09-05 10:40:28.727')) < 3)
So how does DBFunctions.DiffSeconds work. It simply converts to a DATEDIFF in SQL server.
So how does the DATEDIFF work?
DATEDIFF simply gets the second parameter and substracts it from the first parameter.
Here you might get a positive or negative value depending on the parameters passed. To examine the subtraction result you could query the database as below
SELECT DATEDIFF (second, [Extent1].[CreatedAt], '2019-09-05 10:20:28.727')
FROM [dbo].[Notifications] AS [Extent1]
WHERE (([Extent1].[Guid] = '2019-08-16/356889/977010') OR (([Extent1].[IsosGuid] IS NULL) AND ('2019-08-16/356889/977010' IS NULL))) AND
(([Extent1].[DeviceRegistrationId] = '01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ') OR (([Extent1].[DeviceRegistrationId] IS NULL) AND ('01_SsH8BmeM:APA91bGdX01Uvo24qtjayPwePB3L6AWpoqTaGkG0K8SoPOAYSJa1oVzLWKcO9cXEyz8-OetoSSJQPa36upmt38U7cpy-NvfWNTDRWUab_2Vu_abtGfJGLgxIXd-Vy_YJSxvoeH_nbQuQ' IS NULL)))
Or else simply try the following query and try changing the parameter values
select DATEDIFF (second, '2019-09-05 10:20:28.727', '2019-09-05 10:21:28.727')
No comments:
Post a Comment