使用NHibernate和QueryOver连接多个表

Ben*_*ual 4 nhibernate nhibernate-3 queryover

我有这个表:

Person -> PersonFavorites, PersonCompany
PersonCompany -> Company
Run Code Online (Sandbox Code Playgroud)

我现在要用NHibernate和QueryOver进行以下选择:

select * from Person 
  inner join PersonFavorites on Person.Id = PersonFavorites.PersonId 
  inner join PersonCompany on Person.Id = PersonCompany.PersonId 
  inner join Company on Company.Id = PersonCompany.CompanyId
where ...
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个样品,我怎么能这样做? - 我的问题是,我必须加入多个Tables Person - > PersonCompany - > Company.加入人 - > PersonCompany和Person - > PersonFavorites没问题 - 但是PersonCompany的下一步 - >公司.

Low*_*can 11

映射应类似于以下内容:

实体

class Person
{
    Collection<PersonFavorites> favorites;
    Collection<PersonCompany> companies;
}

class PersonFavorite
{
    Person person;
    Favorite favorite;
}

class PersonCompany
{
    Person person;
    Company company;
}
Run Code Online (Sandbox Code Playgroud)

询问

Person personAlias = null;
PersonFavorites personfavouriteAlias = null;
PersonCompany personCompanyAlias  = null;
Company companyAlias = null;
Favorite favouriteAlias = null;

var query = Session.QueryOver<Person>(() => personAlias)
    .joinAlias(() => personAlias.favorites, () => personfavouriteAlias)
    .joinAlias(() => personAlias.companies, () => personCompanyAlias)
    .joinAlias(() => personfavouriteAlias.Favourite, () => favouriteAlias)
    .joinAlias(() => personCompanyAlias.Company, () => companyAlias)
Run Code Online (Sandbox Code Playgroud)