AssertionFailure: “null identifier” - FluentNH + SQLServerCE

前端 未结 2 1813
盖世英雄少女心
盖世英雄少女心 2020-12-15 08:05

The code fails at

session.Save(employee);
with AssertionFailure \"null identifier\". What am I doing wrong?

using FluentNHibernate.Cf         


        
2条回答
  •  孤城傲影
    2020-12-15 08:54

    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.

提交回复
热议问题