كيفية كتابة استعلام معايير متعددة مع ينضم المشاركة
-
21-08-2019 - |
سؤال
وأنا أحاول أن رمز الاستعلام HQL التالية باستخدام API المعايير:
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