2012-05-29 1 views
0

나는 C#을 함께 NHibernate에 사용하고 난 두 클래스 PartnerOrgUnitPartnerUser 을 가지고 데이터베이스에 내가 PartnerOrgUnit와 관련된 3 PartnerUsers 있습니다.NHibernate에 일대 단지 하나의 행을 가져 오는

하지만 내가 할 때 _partnerOrgUnitRepository.FindAll()은 단지 처음에만 PartnerUsers 행을 줄 것입니다.

findall은() 방법은 -

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
    namespace="PMPS.Model.Partner.OrgUnit" 
    assembly="PMPS.Model"> 

     <bag name="PartnerUsers" inverse="true" lazy="true" cascade="all"> 
      <key column="PartnerUserId"/> 
      <one-to-many class="PMPS.Model.Partner.User.PartnerUsers"/> 
     </bag> 
    </class> 
</hibernate-mapping> 
+0

'FindAll()'메소드를 게시해야합니다. –

+0

NHibernate 로깅을 활성화하면 발행 된 SQL 문은 무엇입니까? 데이터베이스에서 예상되는 결과를 제공합니까? –

답변

0

inverse="true" 말한다 PartnerUsers 유지한다 - 내가 좋아하는 코드가

public class PartnerOrgUnit { 
    public IList<PartnerUsers> PartnerUsers { get; set; } 
} 

public class PartnerUsers{ 
    public string FirstName { get; set; } 
    public string MiddleName { get; set; } 
    public string LastName { get; set; } 
    public string EmailAddress { get; set; } 
    public string WorkPhone { get; set; } 
} 

파일 PartnerOrgUnit.hbm.xml에서 - 다음과 같이

session.CreateCriteria(typeof(T)).List<T>() 

내 코드는 협회는 그렇지만 역 참조가 없다. . 나는 단지 PartnerOrgUnit에 3 PartnerUsers을 추가하는 코드가 있다고 생각하지만 Nhibernate는이를 저장하지 않을 것입니다.

관련 문제