2013-04-17 3 views
1
HBM이 포함 리소스로 설정되어 있지만

은, NHibernate에 내게이 오류 준다 :협회 참조 매핑되지 않은 클래스 (.NET)

협회 참조 매핑되지 않은 클래스 : UploadPromotions.Models.StagedPromotionImage

매핑과 같이입니다 다음과 같습니다 :

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="UploadPromotions.Models" 
namespace="UploadPromotions.Models"> 
    <typedef 
    name="blobbedItem" 
    class="UploadPromotions.Models.Blobbed, UploadPromotions.Models"> 
    <param name="classType">Legacy.Item,Legacy</param> 
    </typedef> 
    <typedef 
    name="blobbedSupplier" 
    class="UploadPromotions.Models.Blobbed, UploadPromotions.Models"> 
    <param name="classType">Legacy.ItemFromSupplier,Legacy</param> 
    </typedef> 
    <typedef 
name="photoText" 
class="UploadPromotions.Models.Blobbed, UploadPromotions.Models"> 
    <param name="classType">UploadPromotions.Models.PhotoText,UploadPromotions.Models</param> 
    </typedef> 
    <union-subclass name="StagedPromotionImage" extends="DiskImage"> 
    <many-to-one name="CurrentStage" class="Stage" column="StageId" cascade="none"></many-to-one> 
    <set name="Stages" table="StageForPromotionsTable" cascade="none" batch-size="20" access="field.camelcase-underscore"> 
     <key column="PromotionId"/> 
     <many-to-many class="Stage" column="StageId"/> 
    </set> 
    <many-to-one name="BaseImage" class="DiskImage" column="DiskImageId"></many-to-one> 
    <property name="Created"></property> 
    <property name="Modified"></property> 
    <property name ="Name"></property> 
    <property name="From" column="FromDate" not-null="true"></property> 
    <property name="To" column="ToDate" not-null="true"></property> 
    <property name="Description" type="AnsiString" length="100" not-null="true"></property> 
    <property name="Commited"></property> 
    <property not-null="true" name ="Art" type="NHibernate.Type.EnumStringType`1[[ADAutoTotal.UploadPromotions.Models.Art,ADAutoTotal.UploadPromotions.Models]], NHibernate"></property> 
    <property not-null="true" name ="Use" column="UsageType" type="NHibernate.Type.EnumStringType`1[[ADAutoTotal.UploadPromotions.Models.Use,ADAutoTotal.UploadPromotions.Models]], NHibernate"></property> 
    <component name="TemplateImage" class="Template"> 
     <property name="TemplateName" not-null="true"></property> 
     <property name="Width" not-null="true" column="TemplateWidth"></property> 
     <property name="Height" not-null="true" column="TemplateHeight"></property> 
    </component> 
    <property name="Headline" type="photoText"></property> 
    <property name="Caption" type="photoText"></property> 
    <property name="Base64Url" not-null="false"></property> 
    <property name="Row" column="RowNumber" not-null="true"></property> 
    <property name="Position" not-null="true"></property> 
    <many-to-one name="CreatedBy" class="PromotionManager" column="ManagerId" cascade="none"></many-to-one> 
    <property name="Supplier" type="blobbedSupplier" not-null="false" length="1000"></property> 
    <property name="Item" column="ForItem" type="blobbedItem" not-null="false" length="1000"></property> 
    <many-to-one name="LastCommitedVersion" not-null="false" class="CommitedPromotionImage" column="LastCommitedVersionId"></many-to-one> 
    </union-subclass> 
</hibernate-mapping> 

나는 아무것도 잘못 볼 수 없습니다. 이 사용되는 경우에 관해서는 여기

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="UploadPromotions.Models" 
namespace="UploadPromotions.Models"> 
    <class name="PromotionManager"> 
    ....... 
    <set name="StagedPromotionImages" batch-size="50" inverse="true" cascade="all-delete-orphan" access="field.camelcase-underscore"> 
     <key column="CreatedById"></key> 
     <one-to-many class="StagedPromotionImage"/> 
    </set> 
    </class> 
</hibernate-mapping> 

과 :

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="UploadPromotions.Models" 
namespace="UploadPromotions.Models"> 
    <class name="Stage" table="StagedChanges"> 
    ......... 
    <set name="StagedImages" batch-size="50" inverse="true" cascade="all-delete-orphan" access="field.camelcase-underscore"> 
     <key column="StageId"></key> 
     <one-to-many class="StagedPromotionImage"/> 
    </set> 
    ............ 

    </class> 
</hibernate-mapping> 

는 편집 : 잘

, 나는 .....

매핑 파일 이름에 .hbm 파트를 추가하는 것을 잊었다
+0

디버깅 후, Nhibernate가 매핑을위한 두 개의 클래스, StagedPromotionImage 및 CommittedPromotionImage를로드하지 않는 것으로 보입니다. 이유가 궁금합니다 ... 둘 다 임베디드 리소스로 설정되어 있습니다. –

답변

1

이전에 비슷한 문제가 발생했습니다.

NH 매핑 파일 'SomeClass..hbm.xml'에 두 개의 점이 있습니다. 'SomeClass.hbm.xml'을 찾는데 4 시간이 걸렸습니다 !!!

관련 문제