从NHibernate中删除表中的所有行

时间:2013-01-31 13:03:23

标签: vb.net nhibernate fluent-nhibernate

我有一个使用Fluent NHibernate和NHibernate的应用程序,我有一个Generic DAO类,在这个类中我有持久化数据的通用方法,但我想创建一个通用方法来删除一个表中的所有记录。此刻我有这个方法:

Public Sub ClearTable(ByVal sTable As String)
    Using session = SessaoNHibernate.OpenSession()
        Using transaction = session.BeginTransaction()
            Try
                session.CreateSQLQuery("delete from " & sTable).ExecuteUpdate()
                transaction.Commit()
                session.Flush()
            Catch ex As Exception
                transaction.Rollback()
            End Try
        End Using
    End Using
End Sub

我有一个泛型类,所以我想创建一个不需要传递表名的方法。因为泛型类知道他的类型。

1 个答案:

答案 0 :(得分:5)

只是不要将它作为SQL查询运行,而是可以改为传递类名:

session.CreateQuery("delete from EntityClass").ExecuteUpdate()