多列查询 - Nhibernate 使用 QueryOver
Multiple columns query - Nhibernate using QueryOver
我正在将 NHibernate 与 oracle db 一起使用,我想进行一个 select 多列的查询。
例如,假设我有一个名为 Soldiers 的 table,其中包含以下列:
Id, first name and last name.
我想select和return所有士兵的名字和姓氏,所以在sql中会是这样的:
SELECT FIRSTNAME, LASTNAME FROM SOLDIERS;
如何使用 QueryOver 在代码中执行此操作?
要使用 QueryOver
, 必须 映射 class Soldier
。那是必须。但是随后很容易使用 QueryOver 来获取所有的 FirstName 和 LastName:
Soldier soldier = null;
var list = session
.QueryOver<Soldier>(() => soldier)
.SelectList(l => l
.Select(x => x.LastName).WithAlias(() => soldier.LastName)
.Select(x => x.FirstName).WithAlias(() => soldier.FirstName)
)
.TransformUsing(Transformers.AliasToBean<Soldier>())
// .Take(10) just 10
.List<Soldier>();
Assert.IsTrue(list.First().FirstName != null);
Assert.IsTrue(list.First().LastName != null);
我正在将 NHibernate 与 oracle db 一起使用,我想进行一个 select 多列的查询。 例如,假设我有一个名为 Soldiers 的 table,其中包含以下列:
Id, first name and last name.
我想select和return所有士兵的名字和姓氏,所以在sql中会是这样的:
SELECT FIRSTNAME, LASTNAME FROM SOLDIERS;
如何使用 QueryOver 在代码中执行此操作?
要使用 QueryOver
, 必须 映射 class Soldier
。那是必须。但是随后很容易使用 QueryOver 来获取所有的 FirstName 和 LastName:
Soldier soldier = null;
var list = session
.QueryOver<Soldier>(() => soldier)
.SelectList(l => l
.Select(x => x.LastName).WithAlias(() => soldier.LastName)
.Select(x => x.FirstName).WithAlias(() => soldier.FirstName)
)
.TransformUsing(Transformers.AliasToBean<Soldier>())
// .Take(10) just 10
.List<Soldier>();
Assert.IsTrue(list.First().FirstName != null);
Assert.IsTrue(list.First().LastName != null);