Note that there are some explanatory texts on larger screens.

plurals
  1. PONHibernate.AssertionFailure: null identifier
    primarykey
    data
    text
    <p>Before I kick my computer in to next week...</p> <p>I've checked out every other question about this, but none of them have the solution. I've stripped this code right back, but it's still not working.</p> <p>I'm getting this error when saving an object: NHibernate.AssertionFailure: null identifier</p> <p>This is my mapping file:</p> <pre><code>public class OrderMap : BaseMap&lt;Order&gt; { public SalesOrderMap() { Id(x =&gt; x.Id).Column("OrderId"); } } </code></pre> <p>This is the entity:</p> <pre><code>public class Order { public virtual int Id { get; protected set; } } </code></pre> <p>This is my test code:</p> <pre><code>Order order = new Order(); ISession session = SessionFactory.GetCurrentSession(); session.SaveOrUpdate(order); &lt;----EXCEPTION ON THIS LINE session.Flush(); </code></pre> <p>And then bang...it breaks with</p> <pre><code>[AssertionFailure: null identifier] NHibernate.Engine.EntityKey..ctor(Object identifier, String rootEntityName, String entityName, IType identifierType, Boolean batchLoadable, ISessionFactoryImplementor factory, EntityMode entityMode) +135 NHibernate.Engine.EntityKey..ctor(Object id, IEntityPersister persister, EntityMode entityMode) +70 NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +545 NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +322 NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +130 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +27 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) +63 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) +89 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) +188 NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) +259 NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj) +256 </code></pre> <p>if anyone's interested, this is how the session factory is built:</p> <pre><code>ControllerSource.SessionFactory = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2008.ConnectionString(DataConfig.ConnectionString)) .Mappings(x =&gt; x.FluentMappings.Add(typeof (OrderMap))) .ExposeConfiguration(c =&gt;{ c.SetProperty("generate_statistics", "false"); c.SetProperty("current_session_context_class", contextClass); c.SetProperty("cache.use_second_level_cache", "false"); c.SetProperty("cache.use_query_cache", "false"); c.SetProperty("connection.release_mode", "on_close"); }) .BuildSessionFactory(); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload