EF Core 调用数据库内置函数,以及多个库二义性问题解决

283 阅读1分钟

EF Core用的多了,都不想再写sql语句进行查询了,毕竟这样写的很nice,可是当我们遇到复杂的查询语句,并且无法转换到服务边查询时,怎么办?

EF的内置函数 和sql函数转换

主要是使用 EF.Functions.XXX来代替一般的linq函数书写。

比如你想比较日期离今天有多久了,写成 x=>x.data - Date.Now > 10是会提示你,无法正确翻译为sql函数,需要你显著声明为在本地内存计算,如果数据量不大,是可以在本地内存进行计算的,但如果数据量太大的话,还是老老实实的查询下 支持的函数吧!

支持函数列表

这里以sqlServer为例,看看支持哪些?
具体参考文档: SqlServer支持的函数
在这里插入图片描述
Mysql