プロパティまたはそのラベル(参照されている.Parent.ChildLabelを意味する)が特定のラベル値と等しいデータベースからQueried
タイプのすべてのエンティティを取得しようとしています。Referenced
exampleLabel
Id
exampleId
私は使用してみました:
var result = nhibernateSession
.Query<Queried>()
.Where(queried => queried.SelfReferencing.GetSelfOrAncestor("exampleLabel") == exampleId)
.ToList();
GetSelfOrAncestor
しかし、「System.NotSupportedException」をスローします。おそらく、を SQLに変換する方法がわからないためです。
このメソッドは、呼び出されたインスタンスGetSelfOrAncestor(string label)
の を返します。または、と等しい条件を満たすその祖先を返します。それ以外の場合は 0 を返します。Id
SelfReferencing
this.Parent.ChildLabel
exampleLabel
たとえば、次の図では、 のqueried.SelfReferencing
を指している場合、 のオブジェクトの をLevel 2
返しGetSelfOrAncestor("exampleLabel")
ます。Id
Level 1
public class Queried
{
public int Id { get; set; }
public SelfReferencing Referenced { get; set; }
}
public class SelfReferencing
{
public SelfReferencing Parent { get; set; }
private IList<SelfReferencing > children = new List<SelfReferencing >();
public virtual IList<SelfReferencing > Children
{
get
{
return children;
}
set
{
children = value;
}
}
public string ChildLabel { get; set; }
}
これを達成する方法についての助けをいただければ幸いです:)