我需要波斯语翻译,查询应从字符角度首先进行清理/规范化。
应该使用波斯语的“ی”,而不是阿拉伯语的“ي”。
在EF 6中,我有一个拦截器,实现了IDbCommandInterceptor
,并使用这条简单的代码更改原始SQL查询:
command.CommandText = command.CommandText.SafePersianEncode();
这非常有益,可以降低成本、增加一致性、提高质量,并防止数据清理需求。
由于我们正在迁移到EF Core 2.0,我们意识到拦截器不可用,而且似乎未来版本也不会实现。
由于这是一个非常合法的需求,以及拦截流程的能力是一个众所周知的模式(例如Angular拦截器可以在一个地方修改所有HTTP请求/响应),从架构角度来看,它有助于以整齐的方式管理交叉关注点,那么现在我们该怎么办呢?
在EF Core 2.0中,有没有全局的方法(或任何方法)可以在SQL查询发送到SQL Server之前修改原始SQL查询?