MySql中的EntityFunctions支持

时间:2011-04-22 06:41:03

标签: mysql sql asp.net-mvc linq-to-entities

使用EntityFunctions.DiffMinutes()与MySQL时出错。以下是我的代码

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

此函数接受两个dateTime对象并以分钟为单位返回差异。这在MSSQL中工作正常但在使用MySQl时显示错误“DiffMinutes不存在”。

如果我使用我的自定义或任何内置的DateTime方法,则抛出异常“LINQ to Entities无法识别此方法”

如果有人帮助我,我将不胜感激

问候 Umair Zaman

2 个答案:

答案 0 :(得分:0)

我想也许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;

答案 1 :(得分:0)

DiffMinutes函数在MySQL中不存在,只需创建它并将起作用:

CREATE FUNCTION `DiffMinutes`(timeValue1 datetime, timevalue2 datetime) RETURNS int(11)
    DETERMINISTIC
BEGIN
RETURN TIMESTAMPDIFF(MINUTE, timeValue1, timevalue2);
END