如何使用QueryOverSyntax在NHibernate Query中使用内部变量(如let)

时间:2012-01-31 13:51:31

标签: c# nhibernate queryover

我需要在生产系统中使用NHibernate查询进行一些困难的查询 我用测试查询来简化它。

所以,我需要在查询中使用一个计算每一行的内部变量。即(伪代码)

让我说我有类似的东西:

Customer 
{ 
  Guid Id, 
  DateTime RegisterDate, 
  IEnumerable<CustomerTransaction> Transactions }

CustomerTransaction 
{ 
  Guid CustomerId, 
  decimal Sum, 
  DateTime Date
}

我有一个参数:DateTime monthForReport并希望:

  1. 计算PeriodStartPeriodEnd(内部变量)
  2. 查找PeriodStartPeriodEnd
  3. 之间的所有交易
  4. 使用PeriodStartPeriodEnd和事务总和
  5. 填充dto

    PeriodStart(在C#代码中)是新的:

    DateTime(monthForReport.Year, monthForReport.Month - 1, RegisterDate.Day)
    

    PeriodEnd是新的:

    DateTime(monthForReport.Year, monthForReport.Month, RegisterDate.Day - 1)
    

    因此,您会看到每行我需要两个变量PeriodStart和PeriodEnd用于后续的CustomerTransaction查询。

    但是我找不到任何关于计算变量的信息(比如LINQ to SQL中的那些)。

0 个答案:

没有答案