連接表的我有這個疑問:別名在SQLProjection
criteria = session.CreateCriteria(typeof (Building))
.CreateAlias("Estate", "estate")
.SetProjection(Projections.ProjectionList()
.Add(Property.ForName("Name"), "BuildingName")
.Add(Property.ForName("estate.Name"), "EstateName")
.Add(Projections.SqlProjection(
"(estate1_.BBRMunicipalityNumber + '-' + estate1_.BBREstateNumber + '-' + {alias}.BBRBuildingNumber)" + " as BBRNumber",
new[] { "BBRNumber" },
new[] { NHibernateUtil.String }),
"BBRNumber"))
有沒有一種方法,我可以得到「遺產」的SQL別名像SQL字符串寫入{}地產? {estate}不起作用。現在我結束了對SQL字符串中的別名的硬編碼,但這看起來並不穩固。
如果我正確理解文檔,這應該是可能的。我使用NH2.0.1。
/導演Asger
嗨馬爾滕,非常感謝你的回覆。 getColumnAlias正是我正在尋找的......但正如你所說,它似乎並不存在於NH中。 但至於你的建議,你是非常正確的,我從我的代碼的其他部分抓住查詢部分,在那裏我將使用投影值上的HAVING子句,所以它有道理 - 但在這情況並非如此。感謝您指出了這一點! – asgerhallas 2009-07-03 07:20:53