我有一個nhibernate問題,我投影了sql coalesce函數。NHibernate的QueryOver,投影和別名
我比較兩個不同實體具有相同名稱的字符串屬性。在產生的SQL,只從第一實體相同的屬性被因而比較:在此SQL
var list = Projections.ProjectionList();
list.Add(
Projections.SqlFunction("Coalesce",
NHibernateUtil.String,
Projections.Property<TranslatedText>(tt => tt.ItemText),
Projections.Property<TextItem>(ti => ti.ItemText)));
var q = Session.QueryOver<TextItem>()
.Left.JoinQueryOver(ti => ti.TranslatedItems);
評價q結果
coalesce(this_.ItemText, this_.ItemText)
在RHS的this_
需要是別名的表
我可以使用Projections.Alias(Projections.Property<TranslatedText>(tt => tt.ItemText), "ttAlias")
但我不知道如何在JoinQueryOver
中映射「ttAlias」。
我也可以在那裏創建一個別名,但看不到如何命名它。
TranslatedText ttAlias = null;
...
JoinQueryOver(ti => ti.TranslatedItems,() => ttAlias)
有道理,當你知道如何...謝謝! –