co.de.mon.key

Weblog

Usuwanie danych z tabeli w nHibernate

| Comments

Najbardziej generalny sposób, na jaki trafiłem.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private static void CleanUpTable<T>(ISessionFactory sessionFactory)
{
    var metadata = sessionFactory.GetClassMetadata(typeof(T)) as NHibernate.Persister.Entity.AbstractEntityPersister;
    string table = metadata.TableName;

    using (ISession session = sessionFactory.OpenSession())
    {
        using (var transaction = session.BeginTransaction())
        {
            string deleteAll = string.Format("DELETE FROM \"{0}\"", table);
            session.CreateSQLQuery(deleteAll).ExecuteUpdate();

            transaction.Commit();
        }
    }
}

Sposób użycia:

1
CleanUpTable<Person>(sessionFactory);

Źródło

Comments