Запрос в DaysOfWeek с использованием Entity Framework для базы данных Access - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть база данных Access, которую я запрашиваю с помощью Entity Framework (v6.4.0). Теперь мне нужно получить последнюю дату для данного дня недели (например, последнюю дату, введенную для пятницы).

Запрос SQL выглядит следующим образом:

SELECT MAX(Datum) AS LastDate 
FROM MyTable 
WHERE WEEKDAY(Datum) = WEEKDAY(dateToCheck) 

Здесь dateToCheck содержит день, который я ищу. Но я не могу перевести его на EF для MS Access. Я пробовал SqlFunctions.DatePart("weekday", date), но он работает только для SQL, а не для доступа. Поэтому следующий код не работает для базы данных Access

await context.MyTable.Where(x => SqlFunctions.DatePart("weekday", x.Datum) == (int)dateToCheck.DayOfWeek)
                     .MaxAsync(x => x.Date)

. Выдает NotSupportedException с сообщением:

Указанный метод 'System.Nullable 1[System.Int32] DatePart(System.String, System.Nullable 1 [System.DateTime]) 'для типа' System.Data.Entity.SqlServer.SqlFunctions 'нельзя преобразовать в выражение хранилища LINQ to Entities.

Есть ли функция, которая работает для Доступ к БД?

ПРИМЕЧАНИЕ. Это старая база данных MS Access 2003, если это имеет значение. И я использую JetEntityFrameworkProvider в качестве поставщика данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...