NHibernate的条件投影
本文关键字:投影 条件 NHibernate | 更新日期: 2023-09-27 17:53:21
我无法获得以下查询工作。分组和总和工作没有问题,但是当我尝试执行条件和时,我在编译器上收到以下错误:
Error CS1503 Argument 1: cannot convert from 'NHibernate.Criterion.IProjection' to 'System.Linq.Expressions.Expression<System.Func<ManagementWebBase.Models.FinancialTransaction.FinancialTransactionTO, object>>'
函数代码为:
var summary = session.QueryOver<FinancialTransactionTO>().Select(
Projections.Group<FinancialTransactionTO>(t=>t.Company.Id),
Projections.Sum<FinancialTransactionTO>(t=>t.Total),
Projections.Sum<FinancialTransactionTO>(
Projections.Conditional(
Restrictions.Where<FinancialTransactionTO>(f => f.Type.Id == 1),
Projections.Constant(1),
Projections.Constant(0)))).List<object>();
return summary;
我看到的所有例子都没有什么不同。我做错了什么?
使用投影求解。条件部分不加Type的Sum:下面是我使用的工作示例:
var summary = session.QueryOver<FinancialTransactionTO>().Select(
Projections.Group<FinancialTransactionTO>(t => t.Company.Id),
Projections.Sum<FinancialTransactionTO>(t => t.Total),
Projections.Sum(
Projections.Conditional(
Restrictions.Where<FinancialTransactionTO>(f => f.Type.Id == 1),
Projections.Property<FinancialTransactionTO>(f=>f.Total),
Projections.Constant(0.0M, NHibernateUtil.Decimal)))).List<object>();
return summary;