Я думаю, что ответ должен быть таким:
public IEnumerable<Sales> GetSalesForUser(int userId)
{
return session.CreateCriteria<Sales>()
.CreateAlias("Accounts", "accounts")
.Add(Restrictions.Eq("accounts.UserId", "userId"))
.List<Sales>();
}
Но меня смущает ваша модель. Похоже, что Учетные записи имеют отношение многие-ко-многим с отделом продаж, но вы не отобразили это таким образом. Я не уверен, как фильтровать коллекцию int (HashSet в этом случае). Вы можете попробовать:
public IEnumerable<Sales> GetSalesForUser(int userId)
{
return session.CreateCriteria<Sales>()
.Add(Restrictions.Eq("Accounts", userId))
.List<Sales>();
}