我想添加一个特定的SQL到1查询,该查询仅适用于SQL Server。怎么做:
标准:
Session
.CreateCriteria<User>()
.Add(Expression.Sql("TABLESAMPLE (100 PERCENT)"))
.SetMaxResults(count)
.List<User>();
生成的SQL:
SELECT
TOP (6)
this_.user_id
FROM users this_
WHERE TABLESAMPLE (100 PERCENT)
预期SQL:
SELECT
TOP (6)
this_.user_id
FROM users this_
TABLESAMPLE (100 PERCENT)
WHERE关键字不应存在。怎么做?
10倍
答案 0 :(得分:1)
为什么要使用ICriteria
抽象而不是SQL,如果你打算使用普通的SQL呢?只需使用Session.CreateSqlQuery(...)
并使用您的原生查询即可。
使用该工具仅仅是为了使用它(在某种情况下以某种方式滥用它)没有任何意义。 ICriteria
更适合实体查询,而不适用于数据库端操作。