LastResultOperator结果运算符不是当前支持的

Ehs*_*san 4 c# linq nhibernate linq-to-nhibernate

我有一个使用linq到NHibernate的查询,用于EnterAndExitArchive实体.该实体具有按Archive实体关联.

public EnterAndExitArchive GetLastEnterAndExitArchive(long archiveId)
{
   var q = SessionInstance.Query<EnterAndExitArchive>()
          .Where(x => x.Archive.Id == archiveId)
          .LastOrDefault<EnterAndExitArchive>();

   return q;
}
Run Code Online (Sandbox Code Playgroud)

要么

public EnterAndExitArchive GetLastEnterAndExitArchive(long archiveId)
{
   var q = SessionInstance.Query<EnterAndExitArchive>()
          .LastOrDefault<EnterAndExitArchive>(x => x.Archive.Id == archiveId);

   return q;
}
Run Code Online (Sandbox Code Playgroud)

但这有一个运行时错误.异常消息是The LastResultOperator result operator is not current supported.

为什么?

dil*_*ter 12

LastOrDefault()不支持 NHibernate的.

也许您可以订购结果并使用FirstOrDefault():

public EnterAndExitArchive GetLastEnterAndExitArchive(long archiveId)
{
   var q = SessionInstance.Query<EnterAndExitArchive>()
          .Where(x => x.Archive.Id == archiveId)
          .OrderByDescending(x => x.Something)
          .FirstOrDefault();

   return q;
}
Run Code Online (Sandbox Code Playgroud)