How do I get this SQL query to Nhibernate?
SELECT Customer.name
FROM Company INNER JOIN Customer ON Company.CompanyId = Customer.CompanyId
where CompanyId = 2
>
Assuming you've got a company which represents the company with ID 2. You can use an ICriterion:
return this.GetSession().CreateCriteria()
.Add(Restrictions.Eq("Company", company))
.List();
This will return a list of the Customers associated with the company (assuming the property on the Customer class is called "Company").
To get the names just do:
customers.Select(c => c.name);
I'd suggest this approach as you know all the customers will be loaded in one db hit rather than lazily loading them one at a time.