ICriteriaを使用して、参加 条件を持つクエリを作成しようとしています。私はそれは私が望んでいない、それ以下のSQLを生成しますnHibernate ICriteria参加条件
m_ClientRepository.QueryAlias("client")
.CreateCriteria("client.Contacts", "c", JoinType.LeftOuterJoin)
.Add(Restrictions.Eq("c.ContactType", ContactType.Email));
のような基準を使用している場合は、私が生成しようとしているSQLは、この
SELECT c.ClientID
FROM Client c
LEFT OUTER JOIN ClientContact t on c.ClientID = t.ClientID AND
t.ContactType = 'Email'
のようになります。
SELECT c.ClientID
FROM Client c
LEFT OUTER JOIN ClientContact t on c.ClientID = t.ClientID
WHERE t.ContactType = 'Email'
ICriteriaを使用できない場合、ICriteriaまたはHQLでこれを行うにはどうしてですか?
編集:私はnHibernate 2.1(私が使用しています)がallow thisになったことを発見しました。しかし、ICriteriaについてはわかりませんが、これは私の好みです。
私が探していますでクライテリアとまったく同じものです私達はwithの表現が必要です。 – madcapnmckay
SQLの人は大したことではありませんが、2番目のオプションよりも最初のオプションを望む理由は同じですか? – pythonandchips
こんにちはコリン、彼らは同じ結果を与えることはありません。 – Craig