Fluent-NHibernate对象化关系映射

Fluent-NHibernate对象化关系映射,nhibernate,fluent-nhibernate,nhibernate-mapping,many-to-many,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Many To Many,正在寻找如何配置NHibernate以支持我的场景的答案,这是一个具有对象化关系的多对多映射 我收集了一组与其他人有关系的人。每个关系都有一个属性,指定它们所具有的关系类型。在RDB中,这是通过使用具有该表中指定的关系类型的多对多表来完成的,然后可以通过允许更多类型来扩展模型,例如“亲密的朋友”和“主要的敌人” 我希望能够查询Person对象以按类型返回所有相关人员 <IList>Person myEnemies = myPerson.getRelatedPersons(relat

正在寻找如何配置NHibernate以支持我的场景的答案,这是一个具有对象化关系的多对多映射

我收集了一组与其他人有关系的人。每个关系都有一个属性,指定它们所具有的关系类型。在RDB中,这是通过使用具有该表中指定的关系类型的多对多表来完成的,然后可以通过允许更多类型来扩展模型,例如“亲密的朋友”和“主要的敌人”

我希望能够查询Person对象以按类型返回所有相关人员

<IList>Person myEnemies =  myPerson.getRelatedPersons(relationType.Enemy)
关于使用(流畅的)NHibernate映射此内容,有什么提示/解决方案吗


/Jens

您提到的第一个示例听起来像是需要研究继承映射,但我不确定这对于所涉及的额外表是如何工作的

第二个例子是,您应该能够使用Where子句

HasManyToMany(x => x.Friends)
  .WithTableName("Person_Person")
  .Where("type = 2");

您提到的第一个示例听起来像是需要研究继承映射,但我不确定在涉及额外表的情况下该如何工作

第二个例子是,您应该能够使用Where子句

HasManyToMany(x => x.Friends)
  .WithTableName("Person_Person")
  .Where("type = 2");

伟大的我想我必须加入一个新的类“RelatedPerson”,来支持第一个案例/太棒了!我想我必须加入一个新的类“RelatedPerson”,来支持第一个案例/J
// How to specify type=1  here?
HasManyToMany(x => x.Friends).WithTableName("Person_Person"); 

// How to specify type=2  here?
HasManyToMany(x => x.Enemies).WithTableName("Person_Person"); 
HasManyToMany(x => x.Friends)
  .WithTableName("Person_Person")
  .Where("type = 2");