c# - NHibernate many-to-many, unable to delete a row -


i've got following entities: project, projectmapping , user, it's many manyhere mappings:

public projectmembershipmapping() {     property(pm => pm.isaccepted, prop => prop.notnullable(true));     property(pm => pm.permission, prop => prop.notnullable(true));     manytoone(pm => pm.member, mapping =>                                    {                                        mapping.lazy(lazyrelation.nolazy);                                        mapping.cascade(cascade.all);                                    });     manytoone(pm => pm.project, mapping =>                                     {                                         mapping.lazy(lazyrelation.nolazy);                                         mapping.cascade(cascade.all);                                     });       composedid(pm =>                                                              {                        pm.manytoone(prop => prop.member);                        pm.manytoone(prop => prop.project);                    }); }  public projectmapping() {        set(proj => proj.members,             mapping =>             {                 mapping.lazy(collectionlazy.nolazy);                 mapping.inverse(false);                 mapping.cascade(cascade.all);                 mapping.table("projectmembership");                 mapping.key(k => k.column("project"));             },             action => action.onetomany()         );       }  public class devcoopusermapping : classmapping<devcoopuser> {         bag(user => user.projectmemberships,              mapping =>                 {                     mapping.lazy(collectionlazy.nolazy);                     mapping.inverse(false);                     mapping.cascade(cascade.all);                     mapping.table("projectmembership");                     mapping.key(k => k.column("member"));                 },             action => action.onetomany()); } 

user can member of many projects. let's i'm gonna unsubscribe him project. deleting projectmembership object isession object throws me:

deleted object re-saved cascade (remove deleted object associations)[devcoop.daos.projectmembership#devcoop.daos.projectmembership] 

on other hand, when first try delete projectmembership instance project , user (i delete associations suggested me), exception:

could not delete collection: [devcoop.daos.project.members#1][sql: update projectmembership set project = null project = @p0] 

can help? supposedly screwed around mappings, got no idea can be.

before delete projectmembership instance, remove both devcoopuser.projectmemberships- , project.members-collections.

i believe should work:

  membership.member.projectmemberships.remove(membership);   membership.project.members.remove(membership);   session.delete(membership); 

and think should remove cascadeall projectmembership mapping. i'm not entirely sure, think cascade delete members , projects in collections mapped cascadeall, don't want happen.


Comments

Popular posts from this blog

How do you change vbulletin's home page to the forums instead of the default (CMS or Activity Stream)? -

c++ - Troubles when compiling phash program -