NHibernate Projection查询按日期分组

dev*_*per 4 c# nhibernate criteria nhibernate-projections

我想在NHibernate中编写一个Projection查询,按日期对记录进行分组,并为这些记录计算"Tax"字段值.我的问题是数据库的值是DateTime,我将如何按日期而不是时间对记录进行分组.这是我的代码

template.Criteria.SetProjection(
                Projections.ProjectionList()
                .Add(Projections.GroupProperty("IssueDatetime"), "DateVal")
                .Add(Projections.Sum("Tax"), "TotalFare")
            );
Run Code Online (Sandbox Code Playgroud)

数据库将IssueDatetime字段存储为DateTime类型.我想计算每个日期的税,并忽略时间部分.有人可以帮我解决上述要求吗?

Die*_*hon 8

使用以下内容进行第一次投影:

Projections.GroupProperty(
    Projections.SqlFunction("date",
                            NHibernateUtil.Date,
                            Projections.GroupProperty("IssueDateTime")))
Run Code Online (Sandbox Code Playgroud)

对于NH 2.x:

Projections.GroupProperty(
    Projections.SqlFunction(new SQLFunctionTemplate(
                                NHibernateUtil.Date,
                                "dateadd(dd, 0, datediff(dd, 0, ?1))"),
                            NHibernateUtil.Date,
                            Projections.GroupProperty("IssueDateTime")))
Run Code Online (Sandbox Code Playgroud)