2016-09-13 1 views
0

パラメータ:はNHibernateはを削除し、私は次のようにレコードを削除するクエリを実行する必要が

DELETE FROM News WHERE DateRelease <= DATEADD(DAY, -60, GETDATE()) 

は、これは私のコード

public void Removehistory(Int32 daysToKeepFromNow) 
{ 
    using (ISession session = NHibernateHelper.OpenSession()) 
    { 
     session.Delete("DELETE FROM News WHERE DateRelease <= DATEADD(DAY, -" + daysToKeepFromNow + ", GETDATE())"); 
    } 
} 

ですが、このエラーを発射:

Not supported for DML operations [DELETE FROM News WHERE DateRelease <= DATEADD(DAY, -60, GETDATE())]

私はかなり新しくnhibernateになっていますが、このクエリの何が問題なのですか?

+0

SQL構文を使用する必要があります最初のパスで正常に見えます。私はC#のようないくつかのタグを追加したい – scsimon

答えて

1

session.Deleteがクエリを実行するための方法ではありませんので:Hybernate Session

あなたの代わりに、その後session.createQueryquery.executeUpdate

Query query = session.createQuery("delete News where DateRelease <= (sysdate -60)"); 

int result = query.executeUpdate(); 

if (result > 0) { 
    System.out.println("Old news removed"); 
} 
関連する問題