Thanks for your answer.

I did like you wrote, but I still have the same exception.

How should I update the category within SessionA after it has been
updated in SessionB?

I've tried various combinations of Evict / Refresh / Merge, but with
no success.

Thanks in advance

Michael




On 5 déc, 12:48, Fabio Maulo <[email protected]> wrote:
> because it seems completelly possible, you have to trasform the
> relation from a unidirectional-one-to-many to a
> bidirectional-one-to-many (where delete orphans really work because
> there is a parent); then you have to map the one-shot-delete
> (on-delete="cascade")
>
> --
> Fabio Maulo
>
> El 04/12/2010, a las 21:41, Michael <[email protected]> escribió:
>
>
>
>
>
>
>
> > Hello all,
>
> > here are my two entities:
>
> > public class VideoCategory : BaseEntity<VideoCategory>
> > {
> >    private readonly Iesi.Collections.Generic.ISet<VideoFolder>
> > folders = new HashedSet<VideoFolder>();
>
> >    public VideoCategory()
> >    {
>
> >    }
>
> >    public VideoCategory(string name)
> >    {
> >        Name = name;
> >    }
>
> >    public string Name { get; set; }
>
> >    public IEnumerable<VideoFolder> Folders { get { return
> > folders; } }
> > }
>
> > public class VideoFolder : BaseEntity<VideoFolder>
> > {
> >    private string path;
> >    private readonly Iesi.Collections.Generic.ISet<VideoFile> videos =
> > new HashedSet<VideoFile>();
>
> >    public VideoFolder()
> >    {
>
> >    }
>
> >    public VideoFolder(string path)
> >    {
> >        Path = path;
> >    }
>
> >    public string Path { get; set; }
> >    public string Name { get; private set; }
> > }
>
> > There is a Many-To-One relationship from VideoFolder to VideoCategory,
> > with a Cascade.AllDeleteOrphan.
>
> > Here is how the problem happens:
>
> > I create a new instance of VideoCategory, and save it in SessionA.
> > Once created, the id of this category is published to another view-
> > model, which queries the database to load the entity, in SessionB.
>
> > In SessionB, I create a new VideoFolder, add it to the category, and I
> > update the category in SessionB.
>
> > Now back in SessionA, if I then want to delete VideoCategory, I have
> > this exception:
>
> > "The primary key value cannot be deleted because references to this
> > key still exist"
>
> > I think it's normal, because SessionA doesn't know that the category
> > now has some folders.
>
> > I've added a step which allows the first view-model, owning SessionA,
> > to update the category after it has been updated by SessionB, before
> > it deletes the category, and in that step:
>
> > * I've tried to call Session.Merge, but I have : NonUniqueException :
> > a different object with the same identifier value was already
> > associated with the session:1, of entity VideoCategory
> > * I've tried to evict the category, then merge it, but I have the same
> > exception.
>
> > How can I resolve my problem?
>
> > Thanks in advance
>
> > Michael
>
> > PS: if I add the category, then add a folder to the category, then
> > close the view-model, then open it again and delete the category, I
> > don't have the exception
>
> > --
> > 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 
> > athttp://groups.google.com/group/nhusers?hl=en.

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