2011-05-22 60 views
0

你好 我有这样的映射:一个一对多的NHibernate

<class entity-name="Person"> 
    <id name="id" type="long" column="ID"> 
    <generator class="sequence"/> 
</id>  
<property name="FirstName" column="FIRST_NAME" type="string"/> 
<property name="LastName" column="LAST_NAME" type="string"/> 
<bag name="Addresses" inverse="true" lazy="false"   cascade="all">   <key column="Person_ID"/>   
<one-to-many class="Address"/>  </bag> 

<class entity-name="Address"> 
    <id name="id" type="long" column="ID"> 
    <generator class="sequence"/> 
</id>  
<property name="City" column="City" type="string"/> 
<property name="Country" column="Country" type="string"/> 
<property name="PersonId" column="Person_ID" type="long"/> 
</class> 

我需要获取该住在巴黎的所有人员。为此,我使用查询如 从Person p内连接选择p地址a对p.Id = a.PersonId其中a.City就像'Paris' 而且它是O.k. 但Nhbernate执行另外一个查询,从地址选择,其中a.PersonId在 (即住在巴黎的人都IDS),但它是不必要的,山上的NHibernate可以从加入地址的所有字段(第一查询)

我可以阻止运行第二个查询并从第一个查询中获取所有需要的信息吗?

回答