2014-09-16 1 views
0

이 문제는 일반적인 매핑 문제보다 조금 더 재미있을 것 같습니다.Hibernate - No persister for : System.Guid

나는 NHibernate로 삭제를 실행할 방법이 있지만 분명히 간단한 문제에 매달렸다. 나는 이것과 관련 될 수있는 여러가지 다른 비슷한 이슈들을 살펴 보았지만, 두 시간이 지난 후에 나는 그것에 매달려있다.

<class name="Actor, Domain.Entities" table="Actor" lazy="false"> 
    <id name="ActorId" column="ActorId" type="Guid" unsaved-value="00000000-0000-0000-0000-000000000000"> 
     <generator class="guid" /> 
    </id> 

내가 아직 여기에 집착하는 것 :

public void DeleteOrganization(Guid actorId) 
    { 
     using (var session = _nhibernate.OpenSession()) 
     { 
      ITransaction transaction = session.BeginTransaction(); 
      try 
      { 
       session.Delete(actorId); 
       transaction.Commit(); 
      } 
      catch (Exception) 
      { 
       transaction.Rollback(); 
       throw; 
      } 
     } 
    } 

그리고이 HBM지도 :

나는이 방법을 가지고있다. 키커는 Guid에 걸려있다. 어떤 아이디어?

+0

문제를 조금 더 명확하게 설명 할 수 있습니까? 질문하는 내용을 이해하기가 약간 어렵습니다. NHibernate에에서 NHibernate.Event.Default.DefaultDeleteEventListener.OnDelete (DeleteEvent 이벤트, ISet'1 transientEntities) 에서 NHibernate.Impl.SessionFactoryImpl.GetEntityPersister (문자열 엔티티 이름) 에서 :로 : 나는 "System.Guid에 대한 persister"를 얻을 –

+0

Data.Queries.OrganizationQueriesNHibernate.DeleteOrganization에서 NHibernate.Impl.SessionImpl.Delete (개체 OBJ) 에서 NHibernate.Impl.SessionImpl.FireDelete (DeleteEvent 이벤트) 에서 .Event.Default.DefaultDeleteEventListener.OnDelete (DeleteEvent 이벤트) (GUID actorId) c : \ Data \ Queries \ OrganizationQueries.NHibernate.cs : line 122 – osoclever

+0

세션에서 발생합니다 .Delete (actorId); – osoclever

답변

1

여기에서 문제는 내가 Organization 객체를 매핑하고 id (레코드 자체가 아님)를 삭제하려고 시도했기 때문입니다. 이전 코드에서는 Organization 객체를 삭제하려고 했어야했습니다. 올바른 코드는 다음과 같습니다.

관련 문제