简体   繁体   English

多列查询 - Nhibernate 使用 QueryOver

[英]Multiple columns query - Nhibernate using QueryOver

I'm using NHibernate with oracle db and I want to make a query that selects many columns.我正在将 NHibernate 与 oracle db 一起使用,并且我想进行一个选择许多列的查询。 For example, lets say I have a table named Soldiers with the following columns :例如,假设我有一个名为Soldiers 的表,其中包含以下列:

Id, first name and last name. ID、名字和姓氏。

I want to select and return the first name and last name of all the soldiers, so in sql it will be like this: SELECT FIRSTNAME, LASTNAME FROM SOLDIERS;我想选择并返回所有士兵的名字和姓氏,所以在 sql 中它会是这样的: SELECT FIRSTNAME, LASTNAME FROM SOLDIERS;

How do I do it in code using QueryOver?我如何使用 QueryOver 在代码中做到这一点?

To use QueryOver , there must be mapped class Soldier .要使用QueryOver必须有映射类Soldier That is a must .那是必须的 But then it is easy to use QueryOver to get FirstName and LastName of all:但是很容易使用 QueryOver 来获取所有的名字和姓氏:

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM