Hi!

You are assigning the id only in your default constructor.

Tapio

On Tue, Mar 10, 2009 at 1:29 PM, David Perfors <[email protected]> wrote:

>
> Hello,
>
> I have two classes: one that inherits from Dictionary<> and which add
> some extra funtionality, and one that uses it like this:
>
> public class Distribution<T> : Dictionary<T, Decimal>, IComparable<T>
> {
> }
>
> public class NotaRow
> {
>    public NotaRow()
>    {
>        Children = new Distribution<NotaRow>();
>        Id = Guid.NewGuid();
>    }
>
>    public NotaRow(String description, Decimal toPay)
>    {
>        Description = description;
>        ToPay = toPay;
>    }
>
>    public Guid Id { get; private set; }
>    public String Description { get; set; }
>    public Decimal ToPay { get; set; }
>
>    public Distribution<NotaRow> Children { get; private set; }
>
>    public void Distribute(IEnumerable<Decimal> percentages)
>    {
>        foreach (Decimal percentage in percentages)
>        {
>            NotaRow row = new NotaRow(Description, ToPay *
> percentage);
>            Children.Add(row, percentage);
>        }
>    }
> }
>
> I try to map the NotaRow class to a database with the following
> mapping:
> <class name="NotaRow">
>  <id name="Id" type="Guid">
>    <generator class="assigned" />
>  </id>
>  <property name="Description" />
>  <property name="ToPay" />
>  <map name="Children">
>    <key column="Id" />
>    <index column="NotaRowId" type="Guid" />
>    <element column="Distribution" type="Decimal" />
>  </map>
> </class>
>
> Of course I get an error that the map is not working since I don't use
> any interface and only a custom dictionary type. So for ease I replace
> the Distribution class with the IDictionary<>/Dictionary combination.
> But still NHibernate is complaining that it can't save the
> NotaRow.Children
> "Exception: Could not insert collection... The insert statement
> conflicted with the foreign key Id NotaRowId"
>
> Can anybody give me some advice on how to solve this challange? for me
> these dictionary mappings are the biggest challange this far with
> NHibernate. (mapping to a BindingList was not easy either, but that is
> already solved using custom collection types.)
>
> David.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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