どのように複数で基準クエリが関与した結合の書き込みに
-
21-08-2019 - |
質問
私は基準APIを使用して、次のHQLクエリを記述しようとしています:
var userList = _session
.CreateQuery("select u from User u where u.Role.ID=3 and u.Customer.ID=:cID")
.SetInt32("cID", 1)
.List<User>();
(3つのNHibernateのオブジェクト:ユーザー(ID、名前、役割、顧客)、ロール(ID、名前)と顧客(ID、名前)
。私は次のことを試してみましたが、NHibernateのは、役割に関連付けられている顧客を見つけようとするので、それは動作しません。
var userList = _session
.CreateCriteria(typeof(User))
.CreateCriteria("Role")
.Add(Restrictions.Eq("ID", 3) )
.CreateCriteria("Customer")
.Add(Restrictions.Eq("ID", 1) )
.List<User>();
(作品!)他の方法、それをやっての?
解決
は、
の別名を使用することができますvar userList = _session
.CreateCriteria(typeof(User), "u")
.CreateAlias("u.Role", "r")
.Add(Restrictions.Eq("r.ID", 3) )
.CreateAlias("u.Customer", "c")
.Add(Restrictions.Eq("c.ID", 1) )
.List<User>();
それがお役に立てば幸いです。
所属していません StackOverflow