Поддержка EntityFunctions в MySql - PullRequest
0 голосов
/ 22 апреля 2011

Я получаю ошибку при использовании EntityFunctions.DiffMinutes () с MySQL.Ниже приведен мой код

return db.DiscoveredDevices.Where (m => EntityFunctions.DiffMinutes ((DateTime) m.LastPollTime, DateTime.Now) <= pollTime && m.Status == true) .ToList ();</p>

эта функция принимает два объекта dateTime и возвращает разницу в минутах.это прекрасно работает в MSSQL, но показывает ошибку «DiffMinutes не существует» при использовании с MySQl.

Если я использую свой пользовательский или любой встроенный метод DateTime, то он вызывает исключение «LINQ to Entities не распознает этот метод»

Буду благодарен, если кто-нибудь поможет мне в этом

С уважением, Умайр Заман

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Функция DiffMinutes не существует в MySQL, просто создайте ее и она будет работать:

CREATE FUNCTION `DiffMinutes`(timeValue1 datetime, timevalue2 datetime) RETURNS int(11)
    DETERMINISTIC
BEGIN
RETURN TIMESTAMPDIFF(MINUTE, timeValue1, timevalue2);
END
0 голосов
/ 22 апреля 2011

Я думаю, что, возможно, MySQL не реализует эту функцию ...

Вы можете использовать другой способ, как это:

    DateTime begin = DateTime.Now - pollTime;
    DateTime end = DateTime.Now + pollTime;

    var result = (from s in db.DiscoveredDevices where s.LastPollTime > begin && s.LastPollTime < end && && s.Status == true select s).ToList();
    return result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...