0
問:NHibernate的:如何表達與查詢條件的特定的「分組依據」
標準是什麼/凸起,可以產生下面的查詢?
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 source code,但沒用。 如果我做
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
看起來非常可疑。
你能在點填?目前還不清楚你使用不完整的代碼做什麼。 – 2010-07-19 21:11:48
好吧,填上點(不幸的是我現在沒有在我面前的代碼,但我認爲這是一個正確的)。 – 2010-07-19 22:39:23
這裏有一個可能的解決方法:http://stackoverflow.com/a/12006721/1606945 – 2012-08-17 13:29:29