Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fluent nhibernate Fluent nHibernate映射问题-多对多数据_Fluent Nhibernate - Fatal编程技术网

Fluent nhibernate Fluent nHibernate映射问题-多对多数据

Fluent nhibernate Fluent nHibernate映射问题-多对多数据,fluent-nhibernate,Fluent Nhibernate,这是我的数据库: TBL组: GroupID 组名 TBLMembersingGroup GroupID MemberID 等级 TBL成员 MemberID 名字 这是我的模型: class group { int groupid string name List<EnlistedMembers> myMembers; } class EnlistedMebmers { Member myMember; int Rank; } class Member

这是我的数据库: TBL组: GroupID 组名

TBLMembersingGroup GroupID MemberID 等级

TBL成员 MemberID 名字

这是我的模型:

class group 
{
  int groupid
  string name
  List<EnlistedMembers> myMembers;

}

class EnlistedMebmers
{
  Member myMember;
  int Rank;
}

class Member
{  
  int MemberID
  string Name
}
下一步是什么

如何映射没有标识对象的登记成员?没有团体对象? 但是有了额外的排名数据。数据库有所有的数据,我需要一种方法来创建类的权利

谢谢

Dani

是否有需要映射已登记成员的原因?如果没有,您可以这样映射Group.MyMembers:

HasManyToMany(z => z.MyMembers)
                .AsList()
                .Cascade.All()
                .Table("tblMembersInGroup")
                .ParentKeyColumn("GroupId")
                .ChildKeyColumn("MemberId");

我怀疑这可能是一个方形的圆孔,但我会仔细看看

公共类成员映射:类映射
{
公共成员映射()
{
表(“TBL成员”);
Id(x=>x.MemberID);
Map(x=>x.Name);
}
}
公共类EnroltedMembersMap:子类映射
{
公共登记成员SMAP()
{
表(“TBLMembersingGroup”);
Map(x=>x.Rank);
}
}

您需要使EnroltedMembers从成员继承。我也很确定它会对TBLMembersingGroup中的复合键发出吠声。我没有答案。。。然而。

但是登记成员有一个等级字段-需要携带更多数据!这就是问题的症结所在…明白了,那个成员错过了。你能添加登记成员组吗?还有会员。入伍了吗?我想我可以,这样会更容易。我认为在没有它们的情况下映射是有可能的(从您的数据模型的角度来看,这些对象拥有我所需要的一切,并且添加只会消耗内存,而不会被使用)。但是对于涉及额外数据的多对多映射,我找不到一个合适的例子…EnstratedMember不能从member继承,因为一个member可以与EnstratedMember的几个对象关联(我是3个组中的成员,每个组中我的级别不同)-我不想创建3个EnstratedMember对象并告诉他们我的名字,而是创建一个名为的成员(以及问题中省略的所有其他细节),并将其插入到具有秩的EnclustedMember对象中。。。。
HasManyToMany(z => z.MyMembers)
                .AsList()
                .Cascade.All()
                .Table("tblMembersInGroup")
                .ParentKeyColumn("GroupId")
                .ChildKeyColumn("MemberId");
public class MemberMap : ClassMap<Member>
{
  public MemberMap()
  {
    Table("tblMembers");
    Id(x => x.MemberID);
    Map(x => x.Name);
  }
}

public class EnlistedMembersMap : SubclassMap<EnlistedMembers>
{
  public EnlistedMembersMap()
  {
    Table("tblMembersInGroup");
    Map(x => x.Rank);
  }
}