Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate DetachedCriteria/ICriteria是否对连接深度有任何限制?_Nhibernate_Criteria_Icriteria_Nhibernate Criteria - Fatal编程技术网

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。但我认为你的情况也是如此