0
我可以生成的SQL语句:NHibernate的 - 表值函数
[dbo].[CategoryMatch]([CategoryId], ???) = 1
用下面的HQL发生器:
treeBuilder.Equality(treeBuilder.MethodCall("[dbo].[CategoryMatch]", new[] {
visitor.Visit(arguments[0]).AsExpression(),
visitor.Visit(arguments[1]).AsExpression()
}), treeBuilder.Constant(1));
但是我发现这并不话说藏汉执行:
[CategoryId] IN (SELECT [Id] FROM [dbo].GetCategories(???))
我该如何使用新的SQL来修改我的HQL生成器?我会很感激的帮助。由于
更新:
到目前为止,我想出了以下内容:
treeBuilder.In(
visitor.Visit(arguments[0]).AsExpression(),
treeBuilder.SelectFrom(
treeBuilder.From(
treeBuilder.Range(
treeBuilder.MethodCall("[dbo].[GetCategories]", new[] {
visitor.Visit(arguments[1]).AsExpression()
}).AsExpression(),
treeBuilder.Alias("c")
)
)
)
);
但这给出了错误:
Specified method is not supported.