使用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
答案 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