Fluent NHibernate Formulaでエンティティのテーブルエイリアスを参照または名前変更することはできますか?私は通常は "this_"を使用することができますが、残念ながらNHibernateが生成する他のエイリアスの数に基づいて一貫しているようには見えません。Fluent NHibernate ClassMap Formulaの親テーブルの別名参照?
this.Map(x => x.IsLocked).Formula("CASE WHEN (SELECT COUNT(*) FROM dbo.Child c WHERE c.InboundDate >= BeginDate AND c.InboundDate < EndDate) > 0 THEN 1 ELSE 0 END");
、これはによって私を取得しますが、私は同じ名前のフィールドを一致させる必要があるとき、私はトラブルに実行する(のような「ID」)
this.Map(x => x.IsLocked).Formula("CASE WHEN (SELECT COUNT(*) FROM dbo.Child c WHERE c.ID = ID) > 0 THEN 1 ELSE 0 END");
ここで、ID
はc
の列であるため、 c.ID = ID
は常にtrueと評価されます。ほとんどの場合、私はこれをc.ID = this_.ID
に変更することができますが、私のエンティティの中には、NHibernateが別名としてthis_
を使用することはありませんが、parent1_
のようなものです。
私はへの質問を更新しました - うまくいけば - それは、もう少し明確にします。 NHibernateが式に与えるエイリアスについては言及していませんが、NHibernateの別名はエンティティテーブルに与えます。 –
あなたはそうです。 NHibernateは 'this'を' ID'に付加します。私は結果を得ていないし、間違った木を吠えるようになった。 –