Есть ошибка при использовании NHibernate со столбцами идентификаторов SQL CE. Есть два обходных пути, о которых я знаю:
1 - Установите для свойства connection.release_mode
значение on_close
в конфигурации:
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 - выполнить вставки в транзакции:
using (ISession session = DB.OpenSession())
using (ITransaction txn = session.BeginTransaction())
{
session.Save(employee);
txn.Commit();
}
Я понимаю, что этому вопросу больше месяца, но я надеюсь, что этот ответ все еще пригодится вам.