使用 SQL Server 2008,我想在比较数据库值之前对其运行正则表达式。
我正在研究 CLR 用户定义函数(我调查了 EDM 函数,但我觉得 UDF 更适合使用正则表达式 - 如果我错了,请纠正我)。
理想情况下,我想像这样进行 linq 调用:
var results= db.Items.Where(i => i.CustomFormatFunction() == xyz);
到目前为止,我有这个 c# 代码:
public static partial class UserDefinedFunctions
{
[SqlFunction]
public static SqlString CustomFormatFunction(string str)
{
return Regex.Replace(Regex.Replace(HttpUtility.HtmlDecode(str), @"\s+", "-"), "[^a-zA-Z0-9/-]+", "").ToLower();
}
}
为了让我能够在 linq 查询中使用它,还需要哪些进一步的步骤?