3
NHibernateとQueryOverにはかなり新しく、必要なSQLを生成するためにNHibernateを取得できません。QueryOver - Joinに追加の条件を追加する
私は参加する必要がありますので、私は参加しているテーブルから多くのデータに到達することを避けるために追加の基準を持っています。
私はQueryOverから受け取ったSQLは次のとおりです。
SELECT * FROM adresse this_
left outer join r580_test.afvigelse remarkalia1_ on this_.id=remarkalia1_.adrid and remarkalia1_.dato between '2009-03-13 00:00:00' and '02-03-2012 16:34:35'
left outer join r580_test.afvigelseklagepunkter remarkcomp5_ on remarkalia1_.id=remarkcomp5_.afvigelseid
left outer join r580_test.klagepunkter complainta2_ on remarkcomp5_.klagepunktid=complainta2_.id
WHERE this_.id = 16633
:私が望む何
SELECT * FROM adresse this_
left outer join r580_test.afvigelse remarkalia1_ on this_.id=remarkalia1_.adrid
left outer join r580_test.afvigelseklagepunkter remarkcomp5_ on remarkalia1_.id=remarkcomp5_.afvigelseid
left outer join r580_test.klagepunkter complainta2_ on remarkcomp5_.klagepunktid=complainta2_.id
WHERE this_.id = 16633 and remarkalia1_.dato between '2009-03-13 00:00:00' and '02-03-2012 16:34:35'
は、この(参加最初の左外側のために最後に移動されている間のどこ日付)であります
私QueryOverは、次のようになります。
adr = session.QueryOver<Address>()
.Where(x => x.Id == 16633)
.JoinQueryOver<Remark>(y => y.Remarks).Where(y => y.Created > DateTime.Now.AddDays(-14))
.JoinAlias(y => y.RemarkComplaint,() => complaintAlias, JoinType.LeftOuterJoin)
.SingleOrDefault();
誰もがこの問題を解決する方法についてのアイデアを得ましたか?
私はそれを動作させるように見えません。 JoinQueryOverのオーバーロードを見つけることができません。パス、エイリアス、およびJoinTypeのみを与えることができます。どのバージョンのNHibernateを使用していますか? – Ramius
私はNHibernate 3.2を使用しています。 – Fourth
これは3.3の一部ではないようですが、最も近いものには 'ICriterion withClause'が必要です。これは魔法の文字列に戻ることを意味します。 – Shagglez