2010-12-07 5 views
0

엔티티를 매핑하는 데 Fluent NHibernate를 사용하고 결과 세트를 제공하는 저장소를 가져 오는 데 문제가 있습니다. 콘솔에서 SQL은 표시되지 않지만 다른 저장소에서는 표시됩니다. 나는 그것이 Mappings 때문에 기분이 들지만 이유를 말할 수 없다. 테이블 이름에는이 저장소와 다른 저장소 사이의 유일한 차이점 중 하나 인 밑줄이 포함됩니다. 내 질문에 SQL 실행되지 않을 수 있습니다 무엇입니까?Hibernate가 SQL을 실행하지 않는 이유는 무엇입니까?

여기가 나의 설정입니다.

엔티티 :

public class Org 
    { 
     public virtual int ID { get; set; } 
     public virtual string IndividualName { get; set; } 
     public virtual string GroupName { get; set; } 
     public virtual string AddressLine1 { get; set; } 
     public virtual string AddressLine2 { get; set; } 
    } 

매핑 :

public class OrgMap : ClassMap<Org> 
{ 
    public OrgMap() 
    { 
     Table(@"Org_Updates"); // Also tried Table("Org_Updates"); 
     Map(x => x.ID); 
     Map(x => x.IndividualName); 
     Map(x => x.GroupName); 
     Map(x => x.AddressLine1, "PhysicalLocationAddress"); 
     Map(x => x.AddressLine2, "PLAddr2"); 

저장소 :

public class OrgRepository : RepositoryBase<Org>, IOrgRepository 
    { 
     public IList<Org>GetTop50() 
     { 
      var query = All().AsList(); 
      return query; 
     } 
    } 

RepositoryBase :

public class OrgRepositoryBase<T> : RepositoryBase<T> where T : class 
    { 
     public OrgRepositoryBase() 
     { 
      var registry = ServiceLocator.Current.GetInstance<EventListenerRegistry>(); 
      registry.RegisterListenerForType<T>(GetType(), EventType.Save); 
      registry.RegisterListenerForType<T>(GetType(), EventType.Delete); 
     } 

     protected override ISession GetSession() 
     { 
      return UnitOfWork.Current.GetSessionFromContext<ISession>(typeof (OrgModel)); 
     } 

     protected override Type ModelType 
     { 

      get { return typeof (OrgModel); } 
     } 
    } 
} 

앞서 말한 것처럼 다른 엔티티/매핑을 사용하는 다른 저장소가 작동합니다. 이 저장소를 사용할 수 있으며, 구현 된 엔티티/매핑을 교환하면 작동합니다. 나는 그것이 hte 매핑 때문에 있었지만 어떤 부분을 말할 수 없는지 확신한다. 테이블 이름과 열 이름을 확인했습니다. 도움

+0

매핑 때문에 내가 오류가 발생한다고 생각되면 ... – dotjoe

+0

생성 된 SQL이 있습니까? –

+0

SQL이 콘솔에 표시되지 않습니다. 다른 사람은 repo를 사용하고,이 repo에서 다른 엔티티를 사용하면됩니다. – Brandon

답변

0

에 대한

덕분에 나는 당신의 테이블에 기본 키를 가지고 있다고 여기 가정을하고있다. 그렇다면 그 기본 키를 매핑하지 말아야합니까

public class OrgMap : ClassMap<Org> 
{ 
    public OrgMap() 
    { 
     Table(@"Org_Updates"); 
     Id(x => x.ID); 
     Map(x => x.IndividualName); 
     Map(x => x.GroupName); 
     Map(x => x.AddressLine1, "PhysicalLocationAddress"); 
     Map(x => x.AddressLine2, "PLAddr2"); 
+0

나는 to를 변경하려고 시도했다. Id (x => x.ID); 하지만 여전히 주사위가 ... 나는 하루나 이틀 동안이 일을 그만 두어야했지만 다시 돌아 오려고합니다. 나는 어떤 정보든지에 새롭게 할 것이다. 감사합니다 – Brandon

+0

전체지도 작성을 게시 할 수 있습니까? – jvanrhyn

관련 문제