Hello.
I have a very simple AR model like:
<code>
[ActiveRecord]
public class PolicyType : ActiveRecordValidationBase<PolicyType>
{
[PrimaryKey(Generator = PrimaryKeyType.Assigned),
ValidateNonEmpty]
public virtual long? Id { get; set; }
[Property]
public virtual string Code { get; set; }
[Version("Version",UnsavedValue = "null")]
public virtual int? Version { get; set; }
}
</code>
creating a new instance without assigning the Id, I would expect the
ValidateNonEmpty on the Id to be triggered first before the AR tries
to persist in the DB.
Unfortunately, this is not happening.
No matter whether I call myObject.Create() or myObject.Save(), I get
the very same error below.
Is this a bug or am I doing something wrong?
Thanks.
<code>
Castle.ActiveRecord.Framework.ActiveRecordException : Could not
perform Create for PolicyType
----> NHibernate.Id.IdentifierGenerationException : ids for this
class must be manually assigned before calling save():
ARModel.PolicyType
at Castle.ActiveRecord.ActiveRecordBase.InternalCreate(Object
instance, Boolean flush)
at Castle.ActiveRecord.ActiveRecordBase.Create()
at ARWebApp.Controllers.PolicyTypeController.Create(PolicyType pt) in
PolicyTypeController.cs: line 43
at
ARWebAppTest.Controller.PolicyTypeControllerTest.CreatePolicyTypeTest()
in PolicyTypeControllerTest.cs: line 24
--IdentifierGenerationException
at NHibernate.Id.Assigned.Generate(ISessionImplementor session, Object
obj)
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.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent
event)
at
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent
event)
at
NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent
event)
at
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent
event)
at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.Save(Object obj)
at Castle.ActiveRecord.ActiveRecordBase.InternalCreate(Object
instance, Boolean flush)
</code>
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.