У меня есть веб-API, который использует Odata для запросов к Dbset с использованием Entity Framework и мне нужна помощь в параметризации значений даты с помощью операторов сравнения (> или <). </p>
Контроллер имеет атрибут [EnableQuery] . Значение, которое передается в запрос $ filter: -
OpenDate gt 2019-07-01T00: 00: 00.0000000Z и OpenDate lt
2019-07-10T00: 00: 00.0000000Z и SponsorStatus eq 1 и AccountStatus
eq '0'
Выполняется EF-запрос
Opened connection at 7/9/2019 6:16:41 PM -04:00
SELECT TOP (@p__linq__2)
blah....
FROM ( SELECT
same blah...
FROM (SELECT
same blah...
FROM [Account].[AccountDetails] AS [AccountDetails]) AS [Extent1]
WHERE ([Extent1].[OpenDate] > convert(datetime2, '2019-06-30 20:00:00.0000000', 121)) AND ([Extent1].[OpenDate] < convert(datetime2, '2019-07-09 20:00:00.0000000', 121)) AND ( CAST( [Extent1].[SponsorStatus] AS int) = @p__linq__0) AND (([Extent1].[AccountStatus] = @p__linq__1) OR (([Extent1].[AccountStatus] IS NULL) AND (@p__linq__1 IS NULL)))
) AS [Project1]
ORDER BY [Project1].[CFNAccountId] ASC
Я бы хотел, чтобы приведенные выше части OpenDate также были параметризованы, чтобы план запроса был фиксированным. Есть идеи как этого добиться?