使用NHIBERNATE中的子查询接口
-
30-09-2019 - |
题
我通常在NHIBERNATE中使用分离信号符查询接口:
DetachedCriteria crit = DetachedCriteria.For<IParent>();
而且这很好。
我现在想为子对象创建一个子查询:
DetachedCriteria subcrit = DetachedCriteria.For<IChild>();
并将其添加到这样的标准中 (有点,P.Child实际上是一个别名,但我简化了):
crit.Add(LambdaSubquery.Property<IParent>(p => p.Child.ChildID).In(subcrit));
如果我的双头有价值仪是给孩子的,则可以使用:
DetachedCriteria subcrit = DetachedCriteria.For<Child>();
但不是它是用于接口(如上)。在这种情况下,我有一个例外:
NHibernate.MappingException: No persister for: Domain.Name.Space.IChild
这是本来应该是的,还是我错过了一些配置?
解决方案
在这种情况下,我认为您无法对界面进行查询,因为NHIBERNATE无法找到您打算查询的正确实施类。例如,假设您有另一个称为Childlight的Ichild的实施者(或映射到其他表格),NHIBERNATE没有任何方向来检索类。
您需要创建一个dectachedcriteria.for <child>()而不是接口。
不隶属于 StackOverflow