2009-12-08 4 views
0

, 나는 다음과 같은 도메인을 매핑하는 것을 시도하고있다 :NHibernate에 매핑 오류 - 잘못된 자식 요소는 '대일'자동 매핑과 유창함 NHibernate에 사용

public class Company: IModel 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
} 

public class Account: IModel 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
    public virtual Company Company { get; set; } 
} 

한 회사는 여러 개의 계정을 가질 수 있습니다. 일반적으로 직접 계좌를 개설하고 가끔 관련 회사를 찾고 싶기 때문에 회사 모델에 대한 계좌 목록이 필요하지 않습니다.

유창함 NHibernate에 다음과 같은 hbms 작성

회사

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true"> 
    <class xmlns="urn:nhibernate-mapping-2.2" name="DataModel.Company, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Company`"> 
    <id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <column name="Id" /> 
     <generator class="identity" /> 
    </id> 
    <property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <column name="Name" /> 
    </property> 
    </class> 
</hibernate-mapping> 

계정

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true"> 
    <class xmlns="urn:nhibernate-mapping-2.2" name="DataModel.Account, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Account`"> 
    <id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <column name="Id" /> 
     <generator class="identity" /> 
    </id> 
    <property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <column name="Name" /> 
    </property> 
    <many-to-one class="DataModel.Company, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Company"> 
     <column name="Company_id" /> 
    </many-to-one> 
    </class> 
</hibernate-mapping> 

그리고 나는 다음과 같은 오류가 점점 오전 :

012,389을

이 매핑을 유효하게하려면 어떻게해야합니까?

답변

1

이 도메인 클래스에는 문제가 없음이 밝혀졌습니다. Fluent NHibernate가 분명히 도메인에 포함하려고 시도했던 동일한 어셈블리에 Repository 클래스가 있습니다. 오류를 일으킨 클래스의 매핑을 시도했습니다 (불행히도 오류 메시지는 어떤 유형이 문제를 일으켰는지 말하지 않았습니다).

네임 스페이스에 where 제약 조건을 추가하여 수정했습니다.