Fluent nhibernate Fluent nHibernate映射问题-多对多数据
这是我的数据库: TBL组: GroupID 组名 TBLMembersingGroup GroupID MemberID 等级 TBL成员 MemberID 名字 这是我的模型: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
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);
}
}