自引用多对多nhibernate映射约定 公共类节点 { 公共虚拟整数Id{get;set;} 公共虚拟字符串名称{get;set;} 公共虚拟IList祖先{get;set;} 公共虚拟IList子体{get;set;} }

自引用多对多nhibernate映射约定 公共类节点 { 公共虚拟整数Id{get;set;} 公共虚拟字符串名称{get;set;} 公共虚拟IList祖先{get;set;} 公共虚拟IList子体{get;set;} },nhibernate,fluent-nhibernate,conventions,Nhibernate,Fluent Nhibernate,Conventions,如何为这种情况设置映射约定 谢谢你你确定要参加会议吗?我猜你只是想要一个流畅的映射。这是我上次帮助某人做这件事的一个例子: public class Node { public virtual int Id {get; set;} public virtual string Name {get; set;} public virtual IList<Node> Ancestors {get; set;} public virtual IList<Node

如何为这种情况设置映射约定


谢谢你

你确定要参加会议吗?我猜你只是想要一个流畅的映射。这是我上次帮助某人做这件事的一个例子:

public class Node
{
   public virtual int Id {get; set;}
   public virtual string Name {get; set;}
   public virtual IList<Node> Ancestors {get; set;}
   public virtual IList<Node> Descendants {get; set;}
}
公共类CustomerMap:ClassMap
{ 
公共客户映射()
{ 
Id(x=>x.CustomerId);
Map(x=>x.birth);
Map(x=>x.FirstName);
HasManyToMany(x=>x.Parents)
.ParentKeyColumn(“ChildID”)
.ChildKeyColumn(“父ID”)
.Inverse();
HasManyToMany(x=>x.Children)
.ParentKeyColumn(“ParentID”)
.ChildKeyColumn(“ChildID”);
} 
} 
有关原始线程,请参见。该线程链接到我为演示自引用多对多关系而制作的示例项目,即

public class CustomerMap : ClassMap<Customer> 
{ 
    public CustomerMap() 
    { 
        Id(x => x.CustomerId); 
        Map(x => x.Birthday); 
        Map(x => x.FirstName); 

        HasManyToMany(x => x.Parents) 
            .ParentKeyColumn("ChildID") 
            .ChildKeyColumn("ParentID") 
            .Inverse(); 

        HasManyToMany(x => x.Children) 
            .ParentKeyColumn("ParentID") 
            .ChildKeyColumn("ChildID"); 
    } 
}