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 at 
> http://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