質問:
次のクエリを生成できる基準/予測は何ですか?
SELECT SUBSTRING(Name, 0, 1) FROM Person GROUP BY SUBSTRING(Name, 0, 1)
(明らかに、これは の方が簡単ですがDISTINCT
、後でこれを修正するときにカウントが必要になります)。
私のアプローチ:
ここでの私の主な問題は、定数に関するものです。
Projections.GroupProperty(Projections.SqlFunction(
"SUBSTRING",
NHibernateUtil.String,
Projections.GroupProperty("Name"),
Projections.Constant(0),
Projections.Constant(1)
))
私は得る
SELECT SUBSTRING(Name, 0, 1) FROM Person GROUP BY SUBSTRING(Name, , )
これはNHソースコードから明らかですが、役に立ちません。もしそうなら
Projections.GroupProperty(Projections.SqlFunction(
"SUBSTRING",
NHibernateUtil.String,
Projections.GroupProperty("Name"),
Projections.GroupProperty(Projections.Constant(0)),
Projections.GroupProperty(Projections.Constant(1))
))
それから私は得る
SELECT SUBSTRING(Name, @p0, @p1) FROM Person GROUP BY SUBSTRING(Name, ?, ?)
疑問符は未解決のパラメーターのようですが、その理由はわかりません。
詳細:
見つけたばかり
AbstractEntityJoinWalker.InitProjection(
SqlString projectionString,
SqlString whereString,
SqlString orderByString,
string /* WTF? */ groupByString,
SqlString havingString,
LockMode lockMode
)
のタイプはgroupByString
非常に疑わしく見えます。