使用自定义函数查询


  上节介绍了解析绑定,自定义函数查询是在其基础上做了特殊绑定。定义一个方法并添加 FunctionBindAttribute 特性,并指定自定义的数据库函数名,注意方法的参数必须与自定义的数据库函数的入参一致。

public static class Funcs
{
    [FunctionBind("testfun")]
    public static bool TestFunc(int a1, long a2)
    {
        throw new InvalidOperationException("不能直接使用该方法。");
    }
}

  只需在 lambda 表达式里使用该方法即可。如以下示例:

[TestMethod]
public void TestFunction()
{
    using (var db = new DbContext())
    {
        //调用自定义函数
        var list = db.Products.Where(s => Funcs.TestFunc(3, s.ProductID));
    }
}