كيفية كتابة استعلام معايير متعددة مع ينضم المشاركة

StackOverflow https://stackoverflow.com/questions/372047

  •  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>();

ونأمل أن يساعد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top