在使用普通poco对象调用FullTextSession上的Index方法时抛出下面的错误,与代理对象一起正常工作。
堆栈跟踪:
[TransientObjectException:实例未与此会话关联] NHibernate.Impl.SessionImpl.GetIdentifier(Object 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();
}
有没有办法返回代理结果?或者一些如何使列表适应代理列表?
答案 0 :(得分:0)
我认为您只能索引与会话关联的对象,即代理实体。
您返回的普通POCO并非来自NH - 因此与NH会话无关。
您可以尝试在每个实体上使用ISession.Lock(instance, NHibernate.LockMode.None);
将其与会话相关联,但我真的不知道这是否有效。