Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
流利的Nhibernate:自指多对多_Nhibernate_Fluent Nhibernate - Fatal编程技术网

流利的Nhibernate:自指多对多

流利的Nhibernate:自指多对多,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,使用此类和映射: Public class Something { public int Id; public IList<Something> Similarthings { get; set; } } public class SomtehingMapping { public SomtehingMapping() { Map(x => x.Id); HasManyTo

使用此类和映射:

Public class Something
{
    public int Id;
    public IList<Something> Similarthings { get; set; }
}

public class SomtehingMapping
    {
        public SomtehingMapping()
        {
            Map(x => x.Id);
            HasManyToMany(x => x.Similarthings )
               .Table("SomethingsToSimilarthings")
               .ParentKeyColumn("SomethingA_Id")
               .ChildKeyColumn("SomethingB_Id")
               .Cascade.All();
         }
}

有没有办法定义此映射,以便只使用一个数据库行来表示双向关系?

您是否尝试过像这样将反向映射属性设置为

public class SomtehingMapping
    {
        public SomtehingMapping()
        {
            Map(x => x.Id);
            HasManyToMany(x => x.Similarthings )
               .Inverse()
               .Table("SomethingsToSimilarthings")
               .ParentKeyColumn("SomethingA_Id")
               .ChildKeyColumn("SomethingB_Id")
               .Cascade.All();
         }
}

另一种方法是明确定义关联的另一端,并将其标记为
inverse=“true”

尚未尝试过。很难想象在这种情况下,Inverse=true意味着什么。我试试看,然后回来。
public class SomtehingMapping
    {
        public SomtehingMapping()
        {
            Map(x => x.Id);
            HasManyToMany(x => x.Similarthings )
               .Inverse()
               .Table("SomethingsToSimilarthings")
               .ParentKeyColumn("SomethingA_Id")
               .ChildKeyColumn("SomethingB_Id")
               .Cascade.All();
         }
}