我有一个需要比较两个 url 的情况,一个进入方法,另一个进入数据库。数据库中的那个可能会或可能不会被 URL 解码,并且将有 %20 的空间等等。
这是方法中的 linq 查询:
var Result = (from s in context.301Redirects
where s.IsDeleted == false && s.Status == true && HttpUtility.UrlDecode(s.OldURL).ToUpper() == HttpUtility.UrlDecode(OldURLPath).ToUpper()
select s.NewURL).FirstOrDefault();
return Result;
在方法内部,我可以对传入的参数进行 UrlDecode,但是数据库中的参数呢?这个失败是因为 EF 将无法识别 UrlDecode 方法并抛出异常。
有解决方法吗?