NHibernate C# e SQL Server

本文关键字:Server SQL NHibernate | 更新日期: 2023-09-27 18:17:54

早上好

我想知道是否有任何方法在NHIBERNATE中,我可以检索表的第一行?例如:

Line | ID | Name     |Last Name       |
 1   | 0  | Test     | of Information |
 2   | 1  | Mauricio | Silva          |

如果我想要表的第一行或者第一行

NHibernate C# e SQL Server

你可以使用Linq来创建nHibernate查询。有一个叫做FirstOrDefault()的方法,它只取第一条记录。如果查询返回空,则FirstOrDefault方法将返回null,因此,在使用前请记住检查结果,例如:

var firstItem = session.Query<Entity>().FirstOrDefault();
if (firstItem != null)
{
    string name = firstItem.Name;
    // use object
}

NHibernate支持分页,所以我们可以使用.Take().Skip()选择"任何"记录。在我们的例子中,我们可以这样做:

var list = session
    .QueryOver<Person>()
    .Take(1) // this will take just a first record
    //.Skip(0) // we can even skip some, to get next page
    ;

结果list将包含1行或无行…

var person = list.FirstOrDefault();

同样,我们永远不能确定DB引擎将使用什么顺序,所以我们应该使用显式order by:

var list = session
    .QueryOver<Contact>()
    .OrderBy(p => p.ID)
        .Asc
    .Take(1)
     ;

现在我们可以确定,第一个结果将是ID == 0