Сделать SQL-запрос для Nhibernate

Как получить этот SQL-запрос в Nhibernate?

SELECT Customer.name FROM Company INNER JOIN Customer ON Company.CompanyId = Customer.CompanyId where CompanyId = 2 

    Если вы знакомы с LINQ, это очень просто,
    вы должны напрямую обращаться к ссылке, поданной как объект. и вы получите свойства этого объекта и так далее, вы сможете получить доступ до n-го узла.

    Nhibernate позаботится о ссылочных полях как об объектах.

      //Here is the sample this may work //CustomerList is a nhibernate entity list. //CompanyId is also an entity which is a reference to the CompanyId of Company table. // you will get the list of customers based on condition. var CustomerList = new List(); var custList = from cust in CustomerList where cust.CompanyId.CompanyId == 2 select cust; 

    Предполагая, что у вас есть компания, представляющая компанию с идентификатором 2. Вы можете использовать ICriterion:

     return this.GetSession().CreateCriteria() .Add(Restrictions.Eq("Company", company)) .List(); 

    Это вернет список клиентов, связанных с компанией (при условии, что свойство classа Customer называется «Компания»).

    Чтобы получить имена, просто выполните:

     customers.Select(c => c.name); 

    Я бы предложил этот подход, так как вы знаете, что все клиенты будут загружены в один дБ, а не лениво загружать их по одному.