Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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搜索特定子类_Nhibernate_Criteria_Joined Subclass - Fatal编程技术网

NHibernate搜索特定子类

NHibernate搜索特定子类,nhibernate,criteria,joined-subclass,Nhibernate,Criteria,Joined Subclass,可以在NHibernate中过滤特定的连接子类吗 例如,我有以下课程: Pet { Name } Cat: Pet { Paws } Budgie: Pet { Wings } Person { Pets } 我想创建一个NHibernate搜索,给我一个有四只爪子的猫的人 我似乎只能限制宠物的属性(名称)…。你应该试试这样的方法。我还没有测试过,所以我不是100%确定 DetachedCriteria fetchCatsWith4Pawns = DetachedCriteria.For&l

可以在NHibernate中过滤特定的连接子类吗

例如,我有以下课程:

Pet { Name }
Cat: Pet { Paws }
Budgie: Pet { Wings }
Person { Pets }
我想创建一个NHibernate搜索,给我一个有四只爪子的猫的人


我似乎只能限制宠物的属性(名称)…。

你应该试试这样的方法。我还没有测试过,所以我不是100%确定

 DetachedCriteria fetchCatsWith4Pawns = DetachedCriteria.For<Cat>();
 fetchCatsWith4Pawns.Add(Restrictions.Eq("Pawns", 4));
 fetchCatsWith4Pawns.SetProjection(Projections.Id());

 DetachedCriteria fetchPersonsWithCatsWith4Pawns = DetachedCriteria.For<Person>();
 fetchPersonsWithCatsWith4Pawns.CreateCriteria("Pets", "pet").Add(Subqueries.PropertyIn("pet.id", fetchCatsWith4Pawns));
 fetchPersonsWithCatsWith4Pawns.GetExecutableCriteria(session).List<Person>();
DetachedCriteria fetchCatsWith4Pawns=DetachedCriteria.For();
fetchCatsWith4Pawns.Add(Restrictions.Eq(“典当”,4));
fetchCatsWith4Pawns.SetProjection(Projections.Id());
DetachedCriteria FetchPersonWithCatswith4Pawns=DetachedCriteria.For();
fetchPersonswith4pawns.CreateCriteria(“Pets”、“pet”).Add(subquerys.PropertyIn(“pet.id”,fetchCatsWith4Pawns));
fetchPersonswith4pawns.GetExecutableCriteria(session.List();

你应该试试这样的方法。我还没有测试过,所以我不是100%确定

 DetachedCriteria fetchCatsWith4Pawns = DetachedCriteria.For<Cat>();
 fetchCatsWith4Pawns.Add(Restrictions.Eq("Pawns", 4));
 fetchCatsWith4Pawns.SetProjection(Projections.Id());

 DetachedCriteria fetchPersonsWithCatsWith4Pawns = DetachedCriteria.For<Person>();
 fetchPersonsWithCatsWith4Pawns.CreateCriteria("Pets", "pet").Add(Subqueries.PropertyIn("pet.id", fetchCatsWith4Pawns));
 fetchPersonsWithCatsWith4Pawns.GetExecutableCriteria(session).List<Person>();
DetachedCriteria fetchCatsWith4Pawns=DetachedCriteria.For();
fetchCatsWith4Pawns.Add(Restrictions.Eq(“典当”,4));
fetchCatsWith4Pawns.SetProjection(Projections.Id());
DetachedCriteria FetchPersonWithCatswith4Pawns=DetachedCriteria.For();
fetchPersonswith4pawns.CreateCriteria(“Pets”、“pet”).Add(subquerys.PropertyIn(“pet.id”,fetchCatsWith4Pawns));
fetchPersonswith4pawns.GetExecutableCriteria(session.List();