The code fails at
session.Save(employee);
with AssertionFailure \"null identifier\". What am I doing wrong?
using FluentNHibernate.Cf
There's a "bug" when using NHibernate with SQL CE identity columns. There are two workarounds that I know of:
1 - Set the connection.release_mode
property to on_close
in configuration:
mySessionFactory = Fluently.Configure()
.Database(MsSqlCeConfiguration.Standard
.ConnectionString("Data Source=MyDB.sdf"))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(BuildSchema)
.ExposeConfiguration(x => x.SetProperty("connection.release_mode", "on_close"))
.BuildSessionFactory();
2 - Perform inserts in a transaction:
using (ISession session = DB.OpenSession())
using (ITransaction txn = session.BeginTransaction())
{
session.Save(employee);
txn.Commit();
}
I realize the question is more than a month old but I hope this answer is still of use to you.
Is is still the true. Even first call to SELECT @@IDENTITY returns corect value, but seconds returns null
I use
*connection.driver_class = NHibernate.Driver.SqlServerCeDriver dialect: NHibernate.Dialect.MsSqlCeDialect*
After adding property *connection.release_mode: on_close* to my NHIbernate configuration it works