我有一个像这样的 SQL 表值函数:
创建函数 [Foo] (@bar VARCHAR(255)) 返回@结果表 ( [第 1 列] INT, [第 2 列] INT, [第 3 列] INT, [第 4 列] INT ) ..
我希望能够在 SqlKata 中对它执行查询,方法是使用适当的参数调用函数。
可能吗?如果有怎么办?
注意:这个问题在某种程度上与是否有任何方法可以创建查询,包括投影中的函数和 sqlkata 中的外部应用?,但我也需要传递一个参数。
我有一个像这样的 SQL 表值函数:
创建函数 [Foo] (@bar VARCHAR(255)) 返回@结果表 ( [第 1 列] INT, [第 2 列] INT, [第 3 列] INT, [第 4 列] INT ) ..
我希望能够在 SqlKata 中对它执行查询,方法是使用适当的参数调用函数。
可能吗?如果有怎么办?
注意:这个问题在某种程度上与是否有任何方法可以创建查询,包括投影中的函数和 sqlkata 中的外部应用?,但我也需要传递一个参数。
最简单的方法是使用FromRaw
new Query().FromRaw("[Foo](?)", bar).Select("Column")
旁注:使用QueryFactory
比自己执行查询更容易。
var result = db.Query().FromRaw("[Foo](?)", bar).Select("Column").Get();
我设法获得了像 CTE 一样访问我的函数的结果,即:使用 WithRaw 和别名:
var query = new Query("MyAlias") .WithRaw("MyAlias", "Select Column1 from [Foo](@bar)" ) .Select("Column1"); var 已编译 = _compiler.Compile(query); var result1 = connection.Query(compiled.Sql, new {bar = bar}) .ToList();