엔티티를 매핑하는 데 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 매핑 때문에 있었지만 어떤 부분을 말할 수 없는지 확신한다. 테이블 이름과 열 이름을 확인했습니다. 도움
매핑 때문에 내가 오류가 발생한다고 생각되면 ... – dotjoe
생성 된 SQL이 있습니까? –
SQL이 콘솔에 표시되지 않습니다. 다른 사람은 repo를 사용하고,이 repo에서 다른 엔티티를 사용하면됩니다. – Brandon