私はこのクエリを持っています:
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 文字列に {estate} を書き込むなど、"estate" の SQL エイリアスを取得する方法はありますか? {エステート} は機能しません。SQL文字列にエイリアスをハードコーディングすることになりましたが、それはあまり堅実ではないようです。
ドキュメントを正しく理解していれば、これは可能です。NH2.0.1 を使用しています。
/アスガー