Hello,

In summary, with help from the individually mapped component
properties; but this seems like a bit of a disconnect between the data
model and the domain model?

I am getting an exception mapping a null value for a mapped component
property: "not-null property references a null or transient value".

I seem to recall that if all properties of a mapped component are
null, that the value of the component itself will be null. Fair
enough. But what about the reverse, such as when mapping *to* the
database, not reading *from* the database.

I'm generally looking for a "Nullable" extension method on the
component map method? But I don't see one, per se.

Ah, I think I partially answered my own question, but something of a
minor follow on question appears. The properties of the model itself
are not nullable; I don't think they should be, but there may be a
null for an instance of the component. However, Nullable should be
there for the individual component property mappings.

I wish there were a better way to coordinate this disconnect, because
it seems like something of a risk if some of the values were null, but
not all. Like, somehow a protected method in the ComponentMap class,
or on Component(). Yes, no, maybe?

The exception:

NHibernate.PropertyValueException occurred
  HResult=-2146232832
  Message=not-null property references a null or transient value
Football.Models.Instruction.Zone
  Source=NHibernate
  EntityName=Football.Models.Instruction
  PropertyName=Zone
  StackTrace:
       at NHibernate.Engine.Nullability.CheckNullability(Object[]
values, IEntityPersister persister, Boolean isUpdate)
       at 
NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object
entity, EntityKey key, IEntityPersister persister, Boolean
useIdentityColumn, Object anything, IEventSource source, Boolean
requiresImmediateIdAccess)
       at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object
entity, Object id, IEntityPersister persister, Boolean
useIdentityColumn, Object anything, IEventSource source, Boolean
requiresImmediateIdAccess)
       at 
NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object
entity, String entityName, Object anything, IEventSource source,
Boolean requiresImmediateIdAccess)
       at 
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent
event)
       at 
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent
event)
       at 
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent
event)
       at 
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent
event)
       at NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event)
       at NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj)
       at Football.Data.Repository.NHibernateRepository.SaveOrUpdate[T](T[]
items) in d:\Source\Kingdom
Software\FootballSimulator\Working\src\Football.Data.NHibernate\Repository\NHibernateRepository.cs:line
129
  InnerException:

Thanks,

Michael Powell

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fluent-nhibernate+unsubscr...@googlegroups.com.
To post to this group, send email to fluent-nhibernate@googlegroups.com.
Visit this group at https://groups.google.com/group/fluent-nhibernate.
For more options, visit https://groups.google.com/d/optout.

Reply via email to