【问题标题】:NHibernate Session.Query<>, column list?NHibernate Session.Query<>,列列表?
【发布时间】:2014-09-22 09:52:08
【问题描述】:

我们编写了一些代码,这些代码依赖于使用 IQueryable 实例,所以我想我们不得不使用 ISession.Query&lt;&gt;()

在一种特殊情况下,我只想对 DBO 进行部分水合,并从 NHibernate 将生成的 SELECT 语句中排除某些列。 使用Query&lt;&gt;时是否可以实现这一点?

或者,是否有可能以某种方式从ICriteria 转到IQueryable(我认为 ICriteria 可以通过使用 Projections 来实现我所需要的?)

【问题讨论】:

标签: c# sql nhibernate


【解决方案1】:

IQueryable 也支持投影。语法应该是这样的:

var query = session.Query<Employee>();
var list = query.Select(s => new Employee
    {
        FirstName = s.FirstName,
        LastName = s.LastName,
        ...
     })
     .ToList();

新员工甚至可能是一些 DTO...

关于QueryOver投影API的一些基本信息:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多