NHibernate 中的 QueryOver

QueryOver in NHibernate

当涉及到 NHibernate 中的 QueryOver 时,我迷路了,我正在尝试查询数据库并检索重要的 4 个值,其余的是不必要的并占用处理能力。

我正在尝试这个:

var ext = _session.QueryOver<ExternServiceSettings>()
          .Where(x => x.ExternService == ExternServiceEnum.Outlook).List();

工作正常但花费的时间太长并且 return 数据库中的所有内容。然后我试了:

    var ext = _session.QueryOver<ExternServiceSettings>()
                  .Where(x => x.ExternService == ExternServiceEnum.Outlook)
                  .List<ExternServiceSettings>()
                  .Select(y => y.UserName);

然而这只是 return 用户名并且不会让我获取超过一个值...

感谢所有帮助!

我们应该使用.SelectList()

检查文档中的示例:

var selection =
    session.QueryOver<Cat>()
        .SelectList(list => list
            .Select(c => c.Name)
            .SelectAvg(c => c.Age))
        .List<object[]>();

在此处查看更多内容:

16.7. Projections