使用nhibernate从表中只获取一行和一列

时间:2012-09-20 08:46:08

标签: nhibernate queryover

我有疑问:

 var query = this.session.QueryOver<Products>()

.Where(uic => uic.PageNumber == nextPage[0])

.SingleOrDefault(uic => uic.ProductNumber)

但是此查询结果是Products类型。结果可能只是整数类型的ProductNumber列?

1 个答案:

答案 0 :(得分:4)

尝试这样的事情:

var query = this.session.QueryOver<Products>()
    .Where(uic => uic.PageNumber == nextPage[0])
    .Select(uic => uic.ProductNumber)
    .SingleOrDefault<int>();

由于您需要单个基本类型值,因此可以.Select定义结果列,然后执行.SingleOrDefault以获得唯一结果。对于复杂类型,您需要使用变换器。

您可以在这篇关于nhibernate.info的博文中找到有关QueryOver的更多信息:http://nhibernate.info/blog/2009/12/17/queryover-in-nh-3-0.html