我有以下的数据库表中定义:FluentNhibernate许多一对多和逆()
俱乐部:ID,姓名
会员:ID,姓名
ClubMember:ClubId,成员Id
我有以下实体类定义:
public class Club() {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Member> Members { get; set; }
}
public class Member() {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Club> Clubs { get; set; }
}
我有跟随着摹覆盖定义:
public class MemberOverride : IAutoMappingOverride<Member>
{
public void Override(AutoMapping<Member> mapping_)
{
mapping_
.HasManyToMany(x_ => x_.Clubs)
.ParentKeyColumn("MemberId")
.ChildKeyColumn("ClubId")
.Cascade.All()
.Table("ClubMembers");
}
}
public class ClubOverride : IAutoMappingOverride<Club>
{
public void Override(AutoMapping<Club> mapping_)
{
mapping_
.HasManyToMany(x_ => x_.Members)
.ParentKeyColumn("ClubId")
.ChildKeyColumn("MemberId")
.Inverse()
.Table("ClubMembers");
}
}
我可以从我的覆盖看到,在ClubOverride逆意味着你不能做以下
session.Save(club.Members.Add(member));
但这个工程:
session.Save(member.Clubs.Add(club);
但它不没有逻辑意义。我希望能够与俱乐部成员或俱乐部成员保存俱乐部。
我想用FluentNhibernate做一些不可能的事情吗?
TIA
清晰,简明的响应。谢谢! – 2012-04-13 08:36:39