3

SQL と HQL を除く他の nhibernate クエリ メソッドで current_timestamp の使用を要求することは可能ですか?

問題を解決するために、ある種の IUserType クラスの DbDateTime などを作成することを考えていましたが、それを達成する方法が正確にはわかりませんでした。

誰にもアイデアはありますか?

私が欲しいものの例:

  session.QueryOver<User>()
         .Where(u => u.CreatedOn > current_timestamp)
         .List();
4

2 に答える 2

2

次のように、QueryOver API で IProjection と SQL 関数を使用できます。

var result = session.QueryOver<User>()
             .Where(Restrictions.GtProperty(
                Projections.Property<User>(u => u.CreatedOn), 
                Projections.SqlFunction("current_timestamp", new NHibernate.Type.TimestampType())))
             .List();

これにより、次の SQL が生成されます。

SELECT this_.... FROM [User] this_ WHERE this_.CreatedOn > sysdatetime() ; 
于 2011-05-28T11:37:55.140 に答える
0

これはあなたのケースには当てはまらないかもしれませんが、これはうまくいくかもしれません

session.QueryOver<User>()
     .Where(u => u.CreatedOn > DateTime.Now)
     .List();
于 2011-05-27T19:01:40.903 に答える