jen*_*ent 2 nhibernate nhibernate-projections queryover
我有一个nhibernate问题,我正在投影sql Coalesce函数.
我正在比较来自两个不同实体的两个具有相同名称的字符串属性.在生成的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);
Run Code Online (Sandbox Code Playgroud)
在这个sql中评估q结果
coalesce(this_.ItemText, this_.ItemText)
Run Code Online (Sandbox Code Playgroud)
将this_在RHS需要有一个别名表
我可以使用, Projections.Alias(Projections.Property<TranslatedText>(tt => tt.ItemText), "ttAlias")但不知道如何映射"ttAlias" JoinQueryOver.
我也可以在那里创建一个别名,但是看不到如何命名它.
TranslatedText ttAlias = null;
...
JoinQueryOver(ti => ti.TranslatedItems, () => ttAlias)
Run Code Online (Sandbox Code Playgroud)
别名是QueryOver中的变量,就像您在JoinQueryOver调用中显示的那样.QueryOver中不需要别名(字符串),它们用于Criteria查询.
问题本身:我现在无法测试它,但我认为这应该有效:
Projections.Property(() => ttAlias.ItemText)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4042 次 |
| 最近记录: |