EF架构~让mysql支持DbFunctions扩展函数
对于在Linq To Entity里使用日期函数需要DbFunctions里的扩展方法,而不能使用.net里的日期函数,因为linq的代码会被翻译成SQL发到数据库端,如你的.net方法对于数据库是不知道的,所以需要使用DbFunctions里的函数,它是为sqlserver设计的,而如果你的数据源是mysql,那你就尴尬了,我开始以为Mysql.Data里集成了这些扩展函数,可遗憾的是没有集成,所以我们需要使用其它解决方案。
DbFunctions里的数据库函数
支持MySql的解决方案
在mysql里添加对象的自函数函数
BEGIN #返回两个日期相差月份数 RETURN PERIOD_DIFF(DATE_FORMAT(`to`,'%Y%m'),DATE_FORMAT(`from`,'%Y%m')); END
然后在linq里使用DbFunctions就可以OK了,不会出现未定义函数的问题了
var result =repository.GetModel( i => DbFunctions.DiffMonths(i.CreateDate, DateTime.Now) > 1)
.Take(20)
.ToList();
然后程序可以正常使用了,感谢各位的阅读!
合集:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2016-08-16 插件~Nuget中包与包的依赖关系
2011-08-16 MSMQ微软消息队列的学习(先进先出)