일반 poco 객체로 FullTextSession에서 Index 메소드를 호출하면 아래 오류가 발생하고 프록시 객체로 잘 동작합니다.NHibernate 검색 인덱스 poco 객체가 TransientObjectException을 던졌습니다.
스택 트레이스 :
[TransientObjectException : 인스턴스가이 세션과 연결되지 않았습니다] NHibernate.Impl.SessionImpl.GetIdentifier (개체 OBJ) +500
내가 밖으로 성능을 짜내려고 해요 nhibernate select 메서드 다음 코드를 얻었습니다 :
public virtual IList<T> LoadSearch()
{
return Adapater.Session.QueryOver<T>()
.SelectList(e =>
{
e.Select(x => x.Id);
e.Select(x => x.Title);
e.Select(x => x.Description);
return e;
}).List<object[]>()
.Select(props => new T
{
Id = (Guid)props[0],
Title = (string)props[1],
Description = (string)props[2]
}).ToList();
}
프록시 된 결과를 반환하는 방법이 있습니까? 또는 어떻게 목록을 프록시 목록에 적용 할 수 있습니까?
다시 연결하면 확실하지 않습니다. 다시 연결하려면 세션에서 update()를 호출해야합니다. 세션이 플러시되면 데이터베이스의 현재 항목을 덮어 쓰게됩니다. – Jake
이 경로를 통해 도메인 모델에서 느린로드 연결 및 속성에 대한 유창한 매핑을 변경했습니다. 나는 같은 결과를 얻었지만, NHibernate 프록시에 랩핑 된 객체의 추가 이점을 얻었습니다. – Jake