I'm sorry, but that only gives me more problems.. (stalestate
exceptions...) I didn't have any problems with the assigned strategy.
What I am doing is this:

RateTable table = new RateTable("MyRate").AddDefintion(DateTime.Today,
0.18m);
session.Save(table);
session.Flush();
session.Clear();
session2.Save(table);
session2.Flush();
session2.Clear();

But when I use SaveOrUpdateCopy instead of save, it seems to work...
(but not in production code...)


On May 29, 2:35 pm, Fabio Maulo <[email protected]> wrote:
> With "assigned" you should define the unsaved-value (probably we must review
> what is happening with "assigned" strategy to avoid the unsaved-value).Btw
> you can use the strategy "guid" or even better "guid.comb" and NH will
> manage the ID for you.
>
> 2009/5/29 David Perfors <[email protected]>
>
>
>
>
>
> > Hello,
>
> > I am writing an export function for the application I work on and I
> > want to put the exported objects to an SQLite database. I have an
> > object (RateTable) that contains a IList of items (RateDefinition).
> > When I add the object to one ISession, it works properly, but when I
> > add it to a new ISession (from a different SessionFactory) as well, it
> > won't insert the reference identifier to the RateDefinition table...
>
> > public class RateTable
> >    {
> >        private RateTable() { }
> >        public RateTable(string name)
> >        {
> >            Id = Guid.NewGuid();
> >            Name = name;
> >            Definitions = new List<RateDefinition>();
> >        }
> >        public Guid Id { get; private set; }
> >        public string Name { get; set; }
> >        public IList<RateDefinition> Definitions { get; private set; }
>
> >        public RateTable AddDefintion(DateTime startDate, decimal
> > rate)
> >        {
> >            Definitions.Add(new RateDefinition(startDate, rate));
> >            return this;
> >        }
>
> >        public override bool Equals(object obj)
> >        {
> >            if (GetType() != obj.GetType())
> >                return false;
> >            return Equals(obj as RateTable);
> >        }
>
> >        public bool Equals(RateTable obj)
> >        {
> >            return Id.Equals(obj.Id);
> >        }
> >    }
> > public class RateDefinition
> >    {
> >        private RateDefinition()
> >        {
> >        }
>
> >        public RateDefinition(DateTime startDate, decimal rate)
> >        {
> >            Id = Guid.NewGuid();
> >            StartDate = startDate;
> >            Rate = rate;
> >        }
>
> >        public Guid Id { get; private set; }
> >        public DateTime StartDate { get; set; }
> >        public decimal Rate { get; set; }
> >    }
>
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping assembly="ImportExport"
> >                   default-cascade="save-update"
> >                   default-lazy="false"
> >                   namespace="ImportExport.Domain"
> >                   xmlns="urn:nhibernate-mapping-2.2">
> >  <class name="RateDefinition">
> >    <id name="Id" type="Guid">
> >      <generator class="assigned" />
> >    </id>
> >    <property name="StartDate" />
> >    <property name="Rate" />
> >  </class>
>
> >  <class name="RateTable">
> >    <id name="Id" type="Guid">
> >      <generator class="assigned" />
> >    </id>
> >    <property name="Name" />
> >    <list cascade="save-update" name="Definitions" lazy="false">
> >      <key column="RateTableId" />
> >      <index column="idx" />
> >      <one-to-many class="RateDefinition" />
> >    </list>
> >  </class>
> > </hibernate-mapping>
>
> > Any ideas?
>
> > David
>
> --
> Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to