如何将postgresql反向函数与EFCore一起使用



我想用EFCore创建一个SQL查询,如下所示。

FROM "Customers" AS c
where reverse("Phone") LIKE reverse('%#####');
ORDER BY 1
LIMIT @__p_2 OFFSET @__p_1

我正在尝试使用LINQ,但此代码不起作用,而且我在EF.Functions中找不到反向方法

query = query.Where(c => c.Phone.Reverse().ToString() == $"{phone}%");

抛出错误

消息":"LINQ表达式'DbSet\r\n.Where(c=>c.Phone\r\n.Revrse((.ToString((==__Format_0('无法翻译。以可以通过插入调用AsEnumerable((、AsAsyncEnumerable((、ToList((或ToListAsync((。看见https://go.microsoft.com/fwlink/?linkid=2101038对于更多信息。

是否有任何方法可以使用实体框架核心的PostgreSQL/Npgsql提供程序创建反向函数查询。

不幸的是,在.NET中没有简单/惯用的方法来表示字符串反转;请注意,c.Phone.Reverse().ToString()不会返回反转的电话,因为它会调用从Reverse返回的IEnumerable上的ToString。

我已经为即将发布的5.0版本添加了EF.Functions.Reve-请参阅https://github.com/npgsql/efcore.pg/pull/1496.

相关内容

  • 没有找到相关文章

最新更新