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

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -