QueryOver を使用して次の SQL クエリを実装しようとしています。
SELECT [Time]/1000
FROM TableName
GROUP BY [Time]/1000
これが私の現在の試みです:
var result = session
.QueryOver<TableName>
.Select(Projections.GroupProperty(
Projections.SqlFunction(
new VarArgsSQLFunction("(", "/", ")"),
NHibernateUtil.Int64,
Projections.Property("Time")
Projections.Constant(1000))
))
.List<object>();
残念ながら、次の例外 (GenericADOException) が発生します。
could execute query
[ SELECT (this_.Time/@p0) as y0_ FROM [TableName] this_ GROUP BY (this_.Time/?) ]
そして内部の例外:
Incorrect syntax near ?.
「GroupProperty」を「Sum」に置き換えることができ、機能します。何が欠けているか分かりますか?
更新: どうやらそれは NHibernate のバグです。この質問も参照してください。