从NHibernate中删除表中的所有行

Ped*_*tti 3 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
Run Code Online (Sandbox Code Playgroud)

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

Osk*_*ren 5

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

session.CreateQuery("delete from EntityClass").ExecuteUpdate()
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我这样做:"session.CreateQuery("删除"和GetType(T).ToString()).ExecuteUpdate()"它解决了我的问题. (2认同)