NHibernate -- HQL

时间:2023-11-15 17:30:56

使用NHibernate中的HQL来查询数据。

代码:

         /// <summary>
/// 查找事件
/// </summary>
private void btn_Select_Click(object sender, EventArgs e)
{ }

1.查询,且是使用参数:

             //**** 查询 *****
IQuery query = session.CreateQuery("from Person p where p.Id = ? and p.Name = :name"); //NHibernate中使用参数
//一种是用 "?" ,一种使用 ":"。如果使用?,那么直接表示位置,如果使用:,那么使用:后面的文件名
//在NHibernate中的语句:
//NHibernate: select person0_.Id as Id0_, person0_.Name as Name0_ from Person person0_ where person0_.Id=@p0 and person0_.Name=@p1;@p0 = 2, @p1 = '事件aaaaaaaa'
//此时 0 代表是第一个参数
//此时 1 代表是第二个参数
query.SetParameter(, ); //使用 ?
query.SetParameter("name", "测试"); //使用 : IList<Person> list = query.List<Person>(); this.label3.Text = list[].Id.ToString() + list[].Name.ToString();

2.查询--指定查询的条数,如从第2条--第5条数据:

             //**** 查询指定行数****
IQuery query = session.CreateQuery("from Person"); IList<Person> list = query.List<Person>(); //重新给list赋值
//查询3--5条之间的数据,使用的是下标索引,0代表第一条。
list = list.Skip<Person>().Take<Person>().ToList<Person>(); this.label3.Text = list[].Id.ToString() + " " + list[].Name.ToString();

将1或是2,放在最上面的代码中即可。