Nhibernate DetachedCriteria/ICriteria是否对连接深度有任何限制?
假设我有Nhibernate DetachedCriteria/ICriteria是否对连接深度有任何限制?,nhibernate,criteria,icriteria,nhibernate-criteria,Nhibernate,Criteria,Icriteria,Nhibernate Criteria,假设我有C1、C2和C3类。假设我们可以使用字符串dummy=c1.ContainerC2.ContainerC3.Prop1。是否有任何限制不允许我直接从C3创建别名,而在条件中没有其他类?例如: DetachedCriteria criteria = DetachedCriteria.For<T>("root"); criteria.CreateAlias("ContainerC2.ContainerC3", "alias_abcdef"); DetachedCriteria=
C1
、C2
和C3
类。假设我们可以使用字符串dummy=c1.ContainerC2.ContainerC3.Prop1
。是否有任何限制不允许我直接从C3
创建别名,而在条件中没有其他类?例如:
DetachedCriteria criteria = DetachedCriteria.For<T>("root");
criteria.CreateAlias("ContainerC2.ContainerC3", "alias_abcdef");
DetachedCriteria=DetachedCriteria.For(“根”);
标准.CreateAlias(“ContainerC2.ContainerC3”,“alias_abcdef”);
我有问题。它会生成包含以下错误消息的SQL查询:
无法绑定由多个部分组成的标识符“alias\u cont1\u.HotelName” 您不能直接使用CriteriaAPI访问ContainerC2。相反,您应该执行以下操作:
DetachedCriteria criteria = DetachedCriteria.For<T>("root");
criteria.CreateCreteria("ContainerC2")
.CreateAlias("ContainderC3", "alias_abcdef");
DetachedCriteria=DetachedCriteria.For(“根”);
标准.CreateCretria(“集装箱2”)
.CreateAlias(“ContainderC3”、“alias_abcdef”);
Criteria API就是这样工作的。如果你想移动到某个属性,你需要为它创建一个新的标准。虚拟API,他们在NH3中做了一些改进吗?改进是QueryOver API。但我认为你的情况也是如此