While building out a few spikes to play around with NHibernate and I
have hit a wall with transactions under SQLite.  My configuration
looks like:

FluentNHibernate.Cfg.Db.SQLiteConfiguration
    .Standard.InMemory()
    .ShowSql()
    .Driver<NHibernate.Driver.SQLite20Driver>()
    .Provider<NHibernate.Connection.DriverConnectionProvider>()
    .ProxyFactoryFactory
("NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle")
    .Raw("connection.release_mode", "on_close");

My test explicitly calls a rollback:

NHibernate.ISession session = SessionManager.GetCurrentSession();
using (NHibernate.ITransaction transaction = session.BeginTransaction
())
{

    id = (int)session.Save(new Foo { Name = "Sam" });
    id = (int)session.Save(new Foo { Name = "Sam" });
    transaction.Rollback();
}

var result = session.Get<Foo>(id.Value);
Assert.IsNull(result);

Yet it does not seem to rollback.  Does SQLite have support for
transactions?  In the ShowSQL I am not seeing any evidence of it:

== Creating Test Schema
id
property
id
property
drop table if exists Foo
create table Foo (Id  integer, Name TEXT, primary key (Id))
== Inserting Test Data
NHibernate: INSERT INTO Foo (Name) VALUES (@p0); select
last_insert_rowid(); @p0 = 'Tom'
NHibernate: INSERT INTO Foo (Name) VALUES (@p0); select
last_insert_rowid(); @p0 = 'Dick'
NHibernate: INSERT INTO Foo (Name) VALUES (@p0); select
last_insert_rowid(); @p0 = 'Harry'
== Initialization Complete
NHibernate: INSERT INTO Foo (Name) VALUES (@p0); select
last_insert_rowid(); @p0 = 'Sam'
NHibernate: INSERT INTO Foo (Name) VALUES (@p0); select
last_insert_rowid(); @p0 = 'Sam'

Thanks,
Colin

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to