gpt4 book ai didi

nHibernate 3 - QueryOver 与 DateTime

转载 作者:行者123 更新时间:2023-12-04 01:52:33 24 4
gpt4 key购买 nike

我正在尝试编写一个查询以使用 DateTime 进行选择。 Year 作为 where 参数,但我从 nunit 收到此错误:

NHibernate.QueryException : could not resolve property: Register.Year of: Estudantino.Domain.Events



事件 类中,我有一个名为 的属性,将 注册为 DateTime 类型。
public virtual DateTime Registada { get; set; }

这是返回错误的方法:
  using (ISession session = NHibernateHelper.OpenSession())
{
return session.QueryOver<Evento>()
.Where(x => x.Register.Year == year)
.List();
}

变量 year 的类型为 int ,已传递给该方法。

有谁知道我做错了什么?我的数据库服务器是 SQL Server 2005 Express。

最佳答案

您可能需要在此处使用 HQL。基本上 NHibernate 不知道如何处理 year 。我怀疑您需要使用 RegisterFunction 来注册 YEAR 函数。

请完整阅读此 article 以完全了解您正在尝试做什么。

  • 在代码中创建自定义方言
  • 在 SQL Server 中创建一个名为 MyYearFunction 的函数,该函数返回日期的年份
  • 然后使用 HQL(不确定 QueryOver 是否可以执行此操作)获取日期 where dbo.MyYearFunction(:date) = 12" ...
  • 关于nHibernate 3 - QueryOver 与 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772478/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com