【问题标题】:Does DetachedCriteria/ICriteria have any restriction on join depth?DetachedCriteria/ICriteria 对连接深度有任何限制吗?
【发布时间】:2010-11-28 13:32:03
【问题描述】:

假设我有 C1C2C3 课程。假设我们可以有string dummy = c1.ContainerC2.ContainerC3.Prop1。是否有任何限制不允许我直接从 C3 创建别名,而条件中没有其他类?例如:

DetachedCriteria criteria = DetachedCriteria.For<T>("root");
criteria.CreateAlias("ContainerC2.ContainerC3", "alias_abcdef");

我有问题。它生成具有以下错误消息的 SQL 查询:

无法绑定多部分标识符“alias_cont1_.HotelName”。

【问题讨论】:

    标签: nhibernate criteria icriteria nhibernate-criteria


    【解决方案1】:

    您不能使用 CriteriaAPI 直接访问 ContainerC2。相反,您应该执行以下操作:

    DetachedCriteria criteria = DetachedCriteria.For<T>("root");
    criteria.CreateCreteria("ContainerC2")
            .CreateAlias("ContainderC3", "alias_abcdef");
    

    【讨论】:

    • Criteria API 以这种方式工作。如果您想移动到某个属性,您需要为它创建一个新条件。
    • Dummy API,他们对 NH 3 做了一些改进吗?
    • 改进的是QueryOver API。 nhforge.org/blogs/nhibernate/archive/2009/12/17/…。但我认为你的情况是一样的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2012-05-01
    • 1970-01-01
    • 2022-12-03
    • 2011-08-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多