Как использовать DateTimeOffset в запросе C # linq к базе данных - PullRequest
0 голосов
/ 19 сентября 2019

Я использую Entity Framework и AutoMapper в моем проекте.В базе данных поля DatreTime изначально создавались как поля строкового типа и остаются такими же (например, поля «DepartureTime» и «ArrivalTime»).Я пытаюсь провести сравнение DateTime в своем решении в запросе linq к dbContext, используя DateTimeOffset, чтобы преобразовать строку в DateTime.Но я получаю сообщение об ошибке

Я использую запрос:

db.Passengers
.Where(p => p.AreaOfVisit == area && DateTimeOffset.Parse(p.DepartureTime).UtcDateTime > incidentDate &&
                            DateTimeOffset.Parse(p.ArrivalTime).UtcDateTime < incidentDate).ProjectTo<PassengerDTO>()
                .ToList();

Я получаю это сообщение об ошибке.

System.NotSupportedException HResult = 0x80131515 Сообщение= LINQ to Entities не распознает метод метода System.DateTimeOffset Parse (System.String), и этот метод нельзя преобразовать в выражение хранилища.

Что может быть лучшим способом решенияэтот вопрос.

...