Note that there are some explanatory texts on larger screens.

plurals
  1. POFluentNhibernate many-to-many and Inverse()
    primarykey
    data
    text
    <p>I have the following database tables defined:</p> <p>Club: Id, Name</p> <p>Member: Id, Name</p> <p>ClubMember: ClubId, MemberId</p> <p>I have the following entity Classes defined:</p> <pre><code> public class Club() { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList&lt;Member&gt; Members { get; set; } } public class Member() { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList&lt;Club&gt; Clubs { get; set; } } </code></pre> <p>I have the following overrides defined:</p> <pre><code> public class MemberOverride : IAutoMappingOverride&lt;Member&gt; { public void Override(AutoMapping&lt;Member&gt; mapping_) { mapping_ .HasManyToMany(x_ =&gt; x_.Clubs) .ParentKeyColumn("MemberId") .ChildKeyColumn("ClubId") .Cascade.All() .Table("ClubMembers"); } } public class ClubOverride : IAutoMappingOverride&lt;Club&gt; { public void Override(AutoMapping&lt;Club&gt; mapping_) { mapping_ .HasManyToMany(x_ =&gt; x_.Members) .ParentKeyColumn("ClubId") .ChildKeyColumn("MemberId") .Inverse() .Table("ClubMembers"); } } </code></pre> <p>I can see from my overrides that the Inverse on the ClubOverride means you cannot do the following</p> <pre><code> session.Save(club.Members.Add(member)); </code></pre> <p>but this works:</p> <pre><code> session.Save(member.Clubs.Add(club); </code></pre> <p>But it doesn't make logical sense. I want to be able to save either the club with members or member with clubs.</p> <p>Am I trying to do something impossible with FluentNhibernate?</p> <p>TIA</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload